如何在发送联系人时设置针对SEND操作的intent-filter?

时间:2011-10-19 22:01:38

标签: android android-intent intentfilter

我想在我的应用上注册一个intent-filter,以便我可以与其他应用程序共享联系人。

我可以通过将此添加到我的清单中来实现此目的:

<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"内使用<data>,但没有帮助。

谢谢!

1 个答案:

答案 0 :(得分:3)

设置android:host时,您还需要设置android:scheme,否则会被忽略。尝试将其设置为android:scheme="content"。所有这一切都会阻止您接受没有包含权限“com.android.contacts”的数据URI的意图。

话虽如此,您指定的mime类型将接受任何基于文本的内容。这是你的意图吗?也许您应该使用Google指定的contact item mime-type