1

我希望我的应用能够从 android-explorer 接收图片/音频文件等。what's app、环聊、gmail 等应用已经注册。如何将我的应用程序添加为接收者?

我不确定我应该寻找什么。感谢您的任何提示:)

4

2 回答 2

3

<activity>将需要对 MIME 类型进行适当的<intent-filter>、理想的过滤。

例如,<intent-filter>AOSP Music 应用程序中的这组元素允许它响应ACTION_VIEW各种音频文件类型,包括文件、HTTP 流和ContentProvider流:

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="file"/>
            <data android:mimeType="audio/*"/>
            <data android:mimeType="application/ogg"/>
            <data android:mimeType="application/x-ogg"/>
            <data android:mimeType="application/itunes"/>
        </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="http" />
            <data android:mimeType="audio/*"/>
            <data android:mimeType="application/ogg"/>
            <data android:mimeType="application/x-ogg"/>
            <data android:mimeType="application/itunes"/>
        </intent-filter>
        <intent-filter
            android:priority="-1">
            <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:mimeType="audio/*"/>
            <data android:mimeType="application/ogg"/>
            <data android:mimeType="application/x-ogg"/>
            <data android:mimeType="application/itunes"/>
        </intent-filter>
于 2013-10-11T12:46:50.683 回答
0

虽然 CommonsWare 的回答很好,但我想添加一些可能对其他人有帮助的信息。事实上,我花了好几年才终于找到它......

在文件管理器中选择音频文件时,我的应用程序应列为“打开方式”。

虽然这不起作用(如上面的答案):

            <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="file"/>
            <data android:mimeType="audio/*"/>
            <data android:mimeType="application/ogg"/>
            <data android:mimeType="application/x-ogg"/>
            <data android:mimeType="application/itunes"/>
        </intent-filter>

,这个有效:

            <intent-filter tools:ignore="AppLinkUrlError">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="audio/*" />
        </intent-filter>

. 为什么?无论出于何种原因,“android:scheme”似乎都是罪魁祸首。但是删除该行会导致 IDE 中出现严重的错误消息,必须使用“ignore AppLinkUrlError”子句来抑制该消息。

但是,我没有测试上面提到的其他“方案”,所以也许还有另一种解决方案,但我的至少看起来相当紧凑。

现在的问题仍然是当“打开方式”对话框出现时,为什么我的应用程序的图标与其他应用程序相比如此难看......

于 2020-10-25T21:09:53.343 回答