我一直在开发一个应用程序,它被设置为打开一个特定扩展名的文件。它有时可以在Gmail中使用(有些文件可以打开,有些不能),我可以从文件资源管理器中打开文件。
我不能打开文件从电子邮件应用程序在手机上,但是,正如我所说,有些文件不打开从Gmail应用程序与我的应用程序和一些做!
这是我的代码。
<intent-filter > <!-- Solution from @richardlegget on this question http://stackoverflow.com/questions/8148629/intent-filter-to-download-attachment-from-gmail-apps-on-android -->
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="application/octet-stream" android:pathPattern=".*\\.myextension" />
</intent-filter>
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" android:scheme="file" android:host="*" android:pathPattern=".*\\.myextension" />
</intent-filter>
我的问题
是否存在一组覆盖的意图过滤器,可将特定Activity注册到Android设备上任何位置包含所需文件扩展名的任何文件?
4条答案
按热度按时间vs3odd8k1#
不知道你为什么要使用单独的intent过滤器,当你可以使用一个标签的时候。
可能存在权限问题。例如,如果您的Activity设置为在单独的任务中打开,则无法访问由其他应用程序创建/拥有的文件。您必须设置Intent标志,以便它在同一应用程序中打开。
oknwwptz2#
按照this answer的建议尝试多个
<data android:pathPattern/>
bhmjp9jg3#
当
scheme
为content
时,即当您接收URI
到ContentProvider
时,您需要自己解析路径。在检查Intent过滤器之前,系统将查看您对ContentResolver.getType(Uri uri)
的by调用的mime类型,因此您需要以下代码。通过从包含内容方案的URI中提取Cursor来解析文件的文件路径,并查询_data列:
并添加以下intent过滤器:
ukdjmx9f4#