我试图为图片共享提供两个共享选项,所以我有两个活动,可以接受图像类型.它在任何地方都能正常工作,除了谷歌照片.如果我注释了其中一个从清单,然后它的工作正常,但如果我保持两个,然后只有一个会出现时,我点击共享按钮,点击它将带我到其他活动,而不是一个它是相关联的。
这个问题只发生在谷歌照片应用程序,而不是其他地方。
<activity
android:name="mobi.abc.xyz.NewPostActivity">
<intent-filter android:label="Socials">
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.PICK" />
<data android:mimeType="text/plain" />
<data android:mimeType="application/*" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
</activity>
<activity
android:name="mobi.abc.xyz.EditActivity">
<intent-filter android:label="Share Image to Edit">
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.PICK" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
嗨,我来到这里写同样的事情,@kolboc提到,即谷歌照片使过滤,因为Twitter和Instagram是著名的应用程序,可能是谷歌给他们一个优先级,因此显示共享这些应用程序的两个实例,但我错了...
我发现了一个解决方案来解决这个问题......
因此,它发生的原因是你提到的标签在硬编码字符串。所以,用一些字符串文件名替换这些,像这样... ...
<activity
android:name="mobi.abc.xyz.NewPostActivity">
<intent-filter android:label="@string/socials">
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.PICK" />
<data android:mimeType="text/plain" />
<data android:mimeType="application/*" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
</activity>
<activity
android:name="mobi.abc.xyz.EditActivity">
<intent-filter android:label="@string/share_image_to_edit">
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.PICK" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
我不知道他们使用什么样的代码来标记这些,但这是导致这个问题......所以只要替换这些,它将工作......。
演示图片
我已经用红色标记了应用程序实例,但正如你所注意到的,我无法控制我的应用程序实例的出现位置。谷歌照片是这样安排的。再次,我不知道为什么......但只要我点击一个共享意图,我的应用程序在下一次尝试,它显示我的应用程序实例这样......。
我认为再次谷歌是聪明的这里...... 我认为他们是基于最后使用的优先级列表......
快乐的编码... :)