概述
当在文件管理器里点击某个文件时,会弹出一个打开文件方式的列表,如果需要将自己的App添加到列表中,需要修改App的 Manifest文件。查找了很多资料,写法基本一致,即在Activity中添加一个Intent filter,代码如下:
<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图标终于出现在打开方式列表中了。
<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添加到文件打开方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复