我是靠谱客的博主 风中发带,这篇文章主要介绍将安卓App添加到文件打开方式,现在分享给大家,希望可以做个参考。

当在文件管理器里点击某个文件时,会弹出一个打开文件方式的列表,如果需要将自己的App添加到列表中,需要修改App的 Manifest文件。查找了很多资料,写法基本一致,即在Activity中添加一个Intent filter,代码如下:

复制代码
1
2
3
4
5
6
7
8
<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:mimeType="*/*" /> <data android:pathPattern=".*\.abc" /> </intent-filter>

经过实际测试并没有任何作用,但是既然这么多人都是这么写的,那么应该这个代码本身是没问题的,那问题就只有两种可能:其一可能是我自己的代码哪里有问题,其二是现在的版本已经不支持这么写了。到Google搜索了一番,终于看到有人说新版本的Android中已经不使用file类型的路径了,而是使用content开头。于是将代码按如下修改后,期待已久App图标终于出现在打开方式列表中了。 

复制代码
1
2
3
4
5
6
7
8
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="content" /> <data android:host="*"/> <data android:mimeType="*/*" /> <data android:pathPattern=".*\.abc" /> </intent-filter>

为了兼容以前的版本,我把这两个Intent filter都写在了Activity中,暂时没发现有什么问题。

在对应的Activity的OnCreate函数中,用getIntent().getData()函数即可获取到传入的文件Uri路径(content://…),不过要注意Activity的启动模式,否则可能会在文件管理器的栈上创建你的Acitivity的实例。另外如果用户已经打开了Activity,则OnCreate函数已经被调用过了,可能会没法获取这个Uri,我的解决方法是创建一个新的Activity用于读取这个Uri路径,如果有更好的办法请指教。

最后

以上就是风中发带最近收集整理的关于将安卓App添加到文件打开方式的全部内容,更多相关将安卓App添加到文件打开方式内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部