我们开发了一款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打开文件会发生什么?文件下载在哪里以及如何访问下载的文件?
答案 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}