如何设置意图过滤器仅在发送联系人时发送操作?

发布于 2024-12-11 01:36:21 字数 531 浏览 1 评论 0原文

我想在我的应用程序上注册一个意图过滤器,以便我可以将其他应用程序中的联系人共享给我的应用程序。

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

<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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一抹淡然 2024-12-18 01:36:21

当您设置 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 an android:scheme otherwise it is ignored. Try setting it to be android: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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文