我正在尝试在我的android应用中打开任何扩展名为.conf
的文件。这是我的AndroidManifest.xml
中的内容:
<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" />
<data android:host="*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.conf" />
</intent-filter>
<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="content" />
<data android:host="*" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.conf" />
</intent-filter>
但是,当我点击Downlaods文件夹中的.conf
文件时,它显示“无法打开文件”。
这就是我使用Intent Intercept时得到的:
我在做什么错了?
答案 0 :(得分:2)
删除:
<data android:host="*" />
来自<intent-filter>
条目和
<data android:pathPattern=".*\\.conf" />
来自content
。
文件扩展名在Android上使用不多。从Android Q开始,文件在Android上使用不多。无需ContentProvider
在content
Uri
上放置类似文件的扩展名,如您从屏幕快照中的Uri
所见。
如果您希望支持Intent
之类的常见ACTION_VIEW
操作,最好的选择是将文件保存为通用元格式(例如JSON,XML),且文件扩展名必须与之匹配,然后对相应的MIME类型进行<intent-filter>
过滤。您将需要解决用户选择的不是应用程序创建的文件的可能性,尽管从技术上讲,即使使用自定义扩展名,您也需要处理该文件。