首页 > 解决方案 > Android Intent Filter:无法从预览中打开音频文件?

问题描述

我希望我的 android 应用程序能够从 VIEW 意图打开 MP3 文件和其他一些格式。我几乎可以完成这项工作,但在某些情况下它不会出现在“打开方式...”菜单中。

例如,如果我在“文件”中选择一个 mp3 文件并选择“打开方式”,我会看到一个包含我的应用程序列表(屏幕截图中的“N-Space”)。

截屏

但是当我点击 mp3 文件时,它会打开一个预览。如果我从这个预览屏幕中选择“打开方式”,我会得到一组不同的应用程序,其中不包括我的应用程序。

截屏

为什么同一个文件会出现一组不同的应用程序?它是使用不同的 MIME 类型还是不同的操作类型?如何让我的应用程序显示在该列表中?

这是我的清单的相关部分:

      <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="file" />
        <data android:scheme="http" />
        <data android:scheme="https" />
        <data android:scheme="content" />

        <data android:mimeType="audio/mpeg" />
        <data android:mimeType="audio/mp3" />
        <data android:mimeType="audio/mpeg3" />
        <data android:mimeType="audio/x-mpeg-3" />
        <!-- ... and more for other file types -->
      </intent-filter>

我不能使用audio/*,因为我的应用只支持某些音频格式。

标签: androidandroid-intentandroid-manifest

解决方案


事实证明,第二个“打开方式...”菜单最多显示 3 个应用程序。我卸载了其中一些,然后我的应用程序出现了。可能是一个错误?


推荐阅读