1

我们开发了一个 Android 应用程序,用于呈现我们自定义文件类型 ( .vds) 的文件。我能够为.vds存储在本地存储中的所有文件(文件)启动我的应用程序,但是如果文件存储在 Box 上并且我尝试使用 Box Android 应用程序访问它们,那么我将面临问题。我创建了以下意图过滤器:

  <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 打开文件会发生什么?文件在哪里下载,应该如何访问下载的文件?

4

2 回答 2

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>
于 2013-07-24T06:18:31.237 回答
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}
于 2013-12-04T17:04:36.150 回答