将文件扩展名注册为我的应用程序的intent-filter

时间:2016-03-26 00:25:45

标签: android android-intent manifest

我在注册文件扩展名(例如.abc)时遇到问题,无法打开我的应用程序。

目前我的清单包含:

<activity
        android:name=".view.MainActivity"
        android:label="@string/app_name"
        [...] >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />

            <data android:host="*" />
            <data android:scheme="file" />
            <data android:mimeType="*/*" />
            <data android:pathPattern=".*\\.abc" />
        </intent-filter>
</activity>

使用此代码,我可以从&#34; ES文件资源管理器&#34;中打开.abc文件。使用我的应用程序,但是当我使用设备(LG G3)中的标准文件浏览器或使用主屏幕上的文件快捷方式时,Android会尝试使用Google文档中的pdf查看器打开.abc文件。

我还尝试了BROWSABLE,ALTERNATIVE和SELECTED_ALTERNATIVE类别的不同变体。

为什么Android会执行不同的意图?如何使用我的应用程序始终打开.abc文件?

我希望你能帮助我, 谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

&#34; Android尝试使用Google文档中的pdf查看器打开.abc文件。&#34;不是很清楚。我猜你的意思是它实际上是用pdf查看器打开它而不询问你想用哪个应用来查看文件。

如果您已选择(作为用户)始终使用pdf viewer处理.abc文件,那么该应用程序将处理.abc文件。您必须从设备的设置中清除该偏好设置。