我的具有 PROCESS_TEXT 意图的应用程序未出现在所有应用程序的复制粘贴菜单中

问题描述 投票:0回答:2

我正在尝试扩展复制/粘贴菜单以在我的应用程序中打开特定活动。

问题是,我的应用程序出现在某些应用程序中,而大多数应用程序中则没有。

AndroidManifest.xml:

<manifest ....>

 <queries>
        <intent>
            <action android:name="android.intent.action.PROCESS_TEXT" />
            <data android:mimeType="text/plain" />
        </intent>
        <intent>
            <action android:name="android.intent.action.SEND" />
            <data android:mimeType="text/plain" />
        </intent>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <data android:mimeType="text/plain"/>
        </intent>
    </queries>

<application ...>

<activity
            android:name=".component.popupActivity.PopUpActivity"
            android:exported="true"
            android:theme="@style/Theme.Transparent.SemiBlack">

            <intent-filter>
                <action android:name="android.intent.action.PROCESS_TEXT" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="text/plain" />
            </intent-filter>

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

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="http" />
                <data android:scheme="https" />
                <data android:mimeType="text/html"/>
                <data android:mimeType="text/plain"/>
                <data android:mimeType="application/xhtml+xml"/>
            </intent-filter>

        </activity>

    </application>

</manifest>

我的实现有什么问题吗?

我已经用 WhatsApp、Instagram、Facebook、FB Messenger 进行了测试。 仅适用于 Whatsapp

其他应用程序,例如TranslateOutlookidealo ShoppingFirefox Focus。 总是能够将他们的应用程序添加到复制/粘贴菜单中。

Firefox Focus是开源的,我没有注意到AndroidManifest.xml中有任何不同

android android-11 popupmenu
2个回答
4
投票

经过研究,我发现以下内容:

这个 intent-filter 必须添加到活动中。 我已经使用 Android 11Android 12 进行了测试。 AndroidManifest.xml

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="http" />
                <data android:scheme="https" />
            </intent-filter>

0
投票

确保

PROCESS_TEXT
意图过滤器位于顶部。

<activity
    android:name=".Navigation.HandleText"
    android:excludeFromRecents="true"
    android:exported="true"
    android:label="@string/action_translate"
    android:launchMode="singleTop">
    <intent-filter>
        <action android:name="android.intent.action.PROCESS_TEXT" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
    <intent-filter android:label="@string/action_translate">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
    </intent-filter>
</activity>

就我而言,我有两个意图过滤器,将

PROCESS_TEXT
意图过滤器移动到第一个位置即可修复它。现在它出现在 Chrome、三星浏览器和所有其他应用程序中。

© www.soinside.com 2019 - 2024. All rights reserved.