如何在 google 张照片中为应用程序提供多个共享选项?

How to give multiple share options for an app in google photos?

我正在尝试为图像共享提供两个共享选项,所以我有两个 activity 可以接受图像 type.It 除了 Google 照片外,在任何地方都可以正常工作。 如果我从清单中注释掉其中一个,那么它就可以正常工作,但是如果我保留两个,那么当我单击共享按钮时只会显示一个,然后单击它将带我到另一个 activity,而不是那个它与相关联。

此问题仅出现在 Google 照片应用中,其他任何地方都没有出现。

<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 提到的同样的东西,即 google 照片进行过滤,因为 twitter 和 Instagram 是著名的应用程序,可能 google 给予他们优先权,因此显示两者这些应用程序的共享实例,但我错了...

我找到了解决这个问题的方法...

所以它发生的原因是您在硬编码字符串中提到了标签。所以用这样的字符串文件名替换那些......

<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>

我不知道他们使用什么样的代码来标记这些代码,但这是导致此问题的问题...所以只需替换它们就可以了...

演示图片

我已将应用程序实例标记为红色,但如您所见,我无法控制应用程序实例出现的位置。 Google 照片是这样排列的。我再次不确定为什么? ...但是当我在下一次尝试中单击我的应用程序的共享意图之一时,它会显示我的应用程序实例,如下所示...

我再次认为 google 在这里很聪明...我认为他们正在根据上次使用的优先级制作列表...

快乐编码..:)