2016-02-27 38 views
0

自从首次为Android 2.3开发以来,我的应用程序使用在用户PC上生成的SQLite文件,它使用了以下意图以获知用户已选择它的文件在Dropbox或Drive中。 (其实我有几个类似的意向清单中的支持的目录层次结构的各个层次。):选择文件时从谷歌驱动器的意图

<intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <data android:scheme="file" 
       android:mimeType="application/octet-stream" 
       android:pathPattern=".*\\..*\\..*\\..*\\..*\\..*\\.gedstar" 
       android:host="*" /> 
    </intent-filter> 

当应用程序接收到这个目的,它使用它来打开和文件复制到在其自身的特定目录主要文件存储。很久以前,我不记得我从哪里得到这个结构,但到现在为止它还在继续工作。但是,从Android 6.0开始,它不再适用于Google Drive,并且我收到“不支持的文件类型”消息。 Dropbox仍然可以。

我认为由Drive发布的Intent最近已更改。有谁知道它是如何实现的,所以我可以提供正确的意图过滤器?

+1

“我得到一个”不支持的文件类型“消息” - 从什么?你的意思是说Drive没有找到你的活动?如果是这样,我会假设Drive正在通过“ContentProvider”和“content”方案来提供文件。 – CommonsWare

+0

是的,信息来自Drive应用程序,这是进行文件选择的地方。 – gordonwd

+0

驱动器不再支持file:// uris。 请参阅此处:http://stackoverflow.com/questions/35351652/why-doesnt-the-google-drive-app-on-android-send-file-uris-anymore。 – Anatoli

回答

0

我发现叫意图拦截一个应用程序,让我做什么顾名思义:拦截在云端硬盘应用中选择我的文件时,该驱动器的问题的意图。根据其他云端硬盘文档,这并不是我所期望的,但至少我现在已经弄清楚了这一部分,并且可以获得一个可以使用的内容URI。

+0

我还能够弄清楚如何使用内容URI来正确传输数据。 – gordonwd

相关问题