如何设置意图过滤器仅在发送联系人时发送操作?
我想在我的应用程序上注册一个意图过滤器,以便我可以将其他应用程序中的联系人共享给我的应用程序。
我已经可以通过将其添加到我的清单中来实现此目的:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
问题是我的应用程序出现在共享文本数据的其他应用程序的所有“共享”或“发送到”弹出窗口中。我如何限制这一点,以便我的应用程序仅出现在联系人共享弹出窗口中?
我已经尝试在 内使用
android:host="com.android.contacts"
但没有帮助。
谢谢!
I wanted to register an intent-filter on my app so I can share a contact from other application to mine.
I can already achieve this by adding this to my manifest:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
The problem is that my application appears in all "Share" or "Send to" popups from other applications sharing text data. How can I limit this so my app only appears on the contact share popup?
I already tried to use android:host="com.android.contacts"
inside <data>
but didn't help.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您设置
android:host
时,您还需要设置android:scheme
否则它将被忽略。尝试将其设置为android:scheme="content"
。不过,这一切都会阻止您接受没有包含权限“com.android.contacts”的数据 URI 的意图。话虽这么说,您指定的 mime 类型将接受任何基于文本的内容。这就是你的意图吗?也许您应该使用 联系人项目 mime-type由谷歌指定。
When you set a
android:host
you also need to set anandroid:scheme
otherwise it is ignored. Try setting it to beandroid:scheme="content"
. All this will do though is prevent you from accepting intents without a data URI that contain the authority "com.android.contacts".That being said, the mime-type you have specified will accept any text based content. Is that what you intended? Maybe you should be using the contact item mime-type specified by Google.