我希望我的应用能够从 android-explorer 接收图片/音频文件等。what's app、环聊、gmail 等应用已经注册。如何将我的应用程序添加为接收者?
我不确定我应该寻找什么。感谢您的任何提示:)
我希望我的应用能够从 android-explorer 接收图片/音频文件等。what's app、环聊、gmail 等应用已经注册。如何将我的应用程序添加为接收者?
我不确定我应该寻找什么。感谢您的任何提示:)
您<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>
虽然 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”子句来抑制该消息。
但是,我没有测试上面提到的其他“方案”,所以也许还有另一种解决方案,但我的至少看起来相当紧凑。
现在的问题仍然是当“打开方式”对话框出现时,为什么我的应用程序的图标与其他应用程序相比如此难看......