Android intent-filter - 自定义扩展

Android intent-filter - custom extension

我一直在寻找解决方案,但无济于事。我已经成功设置了我的应用程序,这样当点击它的数据文件时,我的应用程序可以选择打开它(如果没有自动打开)。问题是其他文件类型也被赋予 'open with my app' 选项,一旦我的应用程序启动,这很容易被阻止,但我想一起删除该选项。

我已经尝试将 pathPattern 更改为非常具体的内容,因为这应该是唯一使用过的文件名:"file.fakeapp" 但我的应用程序仍然尝试打开任何文件,无论名称或扩展名如何。

这是我的意图过滤器:

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

我怀疑问题是由于文件方案 mimeType“*/*”引起的,但如果我将其设为其他任何内容,我的应用程序 不是 打开自定义文件的选项类型。所以好像我处于一个全有或全无的情况。文件类型实际上只是 sqlite 但具有自定义扩展名。

非常感谢任何帮助。

documentation 表示如果方案和主机不存在,则忽略 pathPattern 的值。尝试添加:

<data android:host="*" />

也看看这个相关的SO post and answer