如何限制某些应用出现在共享选择器中?

How to restrict some apps to appear in share chooser?

我不希望我的应用显示在某些应用的共享选择器中,因为它会导致我的应用出现一些意外行为。或者换句话说,我可以说我只希望某些应用程序在其共享意图选择器中显示我的应用程序。无论哪种方式,我的 objective 都会完成。

我的清单包括:

<intent-filter android:label="Share with my App">
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
</intent-filter>

此外,我的应用有一些使用原因,因此我将我的 launchMode 设置为 singleTask

我的问题示例:我只希望亚马逊、全球速卖通等商店向我的应用程序发送分享意向,而我不想从任何随机记事本文本中接收任何分享意向,是否可以实现那?如果是那么怎么办?

你想要的不可能。

ACTION_SEND 没有接受某些应用程序而过滤掉其他应用程序的概念。

它的工作方式更像是白名单而不是黑名单,这意味着如果您的应用程序暴露了,所有应用程序都可以看到它,而不是所有应用程序减 1。