读取使用Box启动的自定义文件

时间:2013-04-04 10:02:18

标签: android file box-api

我们开发了一款Android应用,用于呈现自定义文件类型(.vds)的文件。我可以为存储在本地存储上的所有文件(.vds文件)启动我的应用程序,但如果文件存储在Box上,我尝试使用Box Android应用程序访问它们,那么我就会遇到问题。我创建了以下intent过滤器:

  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="file" />
    <data android:host="*" />
    <data android:pathPattern=".*\\.vds" />

问题是在相应的活动中我能够获得意图,但是如果我尝试读取URI(因为我们的渲染逻辑基于文件位置),它给了我一个不存在的路径SD卡。如果我们尝试使用Box Android Native App打开文件会发生什么?文件下载在哪里以及如何访问下载的文件?

2 个答案:

答案 0 :(得分:0)

这可以解决您的问题。添加以下意图过滤器。

<activity android:name=".Activity"
          android:screenOrientation="portrait"
          android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
       <action android:name="android.intent.action.VIEW"/>
        <action android:name="android.intent.action.EDIT"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:pathPattern="*.snowdragon"/>
        <data android:mimeType="text/snowdragon"/>
    </intent-filter>
</activity>

答案 1 :(得分:0)

如上所述,我遇到了同样的问题。虽然我没有找到我认为是正确的解决方案(TM)的东西,但我确实需要添加一些可能对其他人有用的东西:

首先,我发现如果我在Box中下载文件(与离线标记不同),则点击下载结果对话框或应用程序底部显示的后续通知中的项目。但是,一旦你驳回了该通知,似乎没有办法从Box中回到下载的文件。

其次,让我通过说我还没有仔细看过它来证明这一点,但我认为可以使用文件中的文件名信息来查找不存在的文件,通过Box API检索文件,直接从云端或可能通过API调用来检索脱机项目。我想知道这是否真的是Box试图让我们对这些虚假的文件路径做些什么,考虑到它们是如此公然虚假:

12-04 10:09:29.318: INFO/ActivityManager(607): START u0
{act=android.intent.action.VIEW dat=file:///non_existent_dummy_folder/foo.abcdef typ=application/abcdef cmp=com.foo.bar/.app.FooViewer}