我正在开发一个电子邮件应用,我已在活动中指定了意图过滤器,以便其他应用可以从中共享内容。每个其他应用程序在共享时显示我的电子邮件应用程序意图,但是当我分享电子邮件对话时WhatsApp不会显示它。
我的Actvity在AndroidManifest中定义,如下所示:
<activity
android:name="com.test.myapp.ComposeActivity"
android:configChanges="orientation|keyboard|screenSize|screenLayout" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="mailto" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="mailto" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
如何在通过WhatsApp共享时让我的应用可见?
答案 0 :(得分:1)
想出来,支持这个answer
事实证明,WhatsApp将显示在选择器上的软件包列入白名单。一些列入白名单的电子邮件客户端是outlook,k9(实际上并没有为我工作因此可能已经过时)和gmail / android电子邮件。
一种解决方法是使用与这些列入白名单的软件包相同的应用程序ID(我已经验证了这仍然有效)但显然您无法发布到应用商店。如果你绝望,你可能会创建另一个应用程序并将apk捆绑到您的资产/原始,并让他们从那里安装它。此应用可以共享其中一个列入白名单的软件包的域,并将此意图安全地传输到您的主应用程序*。
我不主张采用这种方法,只是说它是一种选择。