我希望我的应用能够从android-explorer接收图片/音频文件等。 诸如应用,环聊,gmail等应用已经注册。如何将我的应用程序添加为接收器?
我不确定我应该寻找什么。 感谢任何提示:)
答案 0 :(得分:2)
您的<activity>
需要适当的<intent-filter>
,理想情况下会对MIME类型进行过滤。
例如,AOSP音乐应用中的这组<intent-filter>
元素允许它在各种音频文件类型,文件,HTTP流和ACTION_VIEW
流上响应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>
答案 1 :(得分: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”子句将其删除。
但是,我没有测试上面提到的其他“方案”,所以也许还有另一种解决方案,但是我的看起来至少很紧凑。
现在的问题仍然是,当出现“打开方式”对话框时,为什么我的应用程序图标与其他图标相比如此丑陋……