PROCESS_TEXT 在 Android 11 之后,在大多数应用程序的文本选择菜单中不可见
PROCESS_TEXT Not visible in text selection menu in most apps after Android 11
我在清单文件中有以下配置-
<activity
android:name=".activities.PopupWord"
android:excludeFromRecents="true"
android:theme="@style/popups">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PROCESS_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
我可以在 Android 10 中的 Twitter 等应用程序的文本选择菜单中看到我的 'Lookup' 按钮,但在 Android 11 中它消失了。令人惊讶的是它在 Chrome.
中有效
Wikipedia Beta,以某种方式规避了这个问题,并在所有地方显示了它的 'Search in Wikipedia' 按钮。我试着查看它的清单,发现它很相似。
<activity
android:name="org.wikipedia.search.SearchActivity"
android:windowSoftInputMode="0x10">
<intent-filter
android:label="@ref/0x7f100190">
<action
android:name="android.intent.action.SEND" />
<category
android:name="android.intent.category.DEFAULT" />
<data
android:mimeType="text/plain" />
</intent-filter>
<intent-filter
android:label="@ref/0x7f100190">
<action
android:name="android.intent.action.PROCESS_TEXT" />
<category
android:name="android.intent.category.DEFAULT" />
<data
android:mimeType="text/plain" />
</intent-filter>
</activity>
(我尝试制作 mimeType text/plain 并添加标签,但没有帮助)
任何线索都会有所帮助。
所以我找到了发生这种情况的可能原因。
- 使用自定义文本编辑框或文本框的应用需要通过运行以下代码(More Details)
在文本选择菜单中手动添加按钮
public void onInitializeMenu(Menu menu) {
// Start with a menu Item order value that is high enough
// so that your "PROCESS_TEXT" menu items appear after the
// standard selection menu items like Cut, Copy, Paste.
int menuItemOrder = 100;
for (ResolveInfo resolveInfo : getSupportedActivities()) {
menu.add(Menu.NONE, Menu.NONE,
menuItemOrder++,
getLabel(resolveInfo))
.setIntent(createProcessTextIntentForResolveInfo(resolveInfo))
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
}
这需要应用程序扫描现有包以获得 Process_text 意图支持,但在 Android 11 中,我们无法访问所有已安装的包,只能访问 [=11 中的包=] 在 androidManifest.xml.
维基百科是一个著名的应用程序,推特必须将其添加到查询列表中,因此支持。
有同样的问题:我想要文本选择后的翻译选项,但很长时间都找不到它在我的应用程序定位中丢失的原因Android11。看起来即使使用没有自定义菜单的标准视图我们必须在 <queries>
中指定 PROCESS_TEXT
意图
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT" />
<data android:mimeType="text/plain" />
</intent>
</queries>
使用此代码段,所有外部应用项目都按预期可见。
我在清单文件中有以下配置-
<activity
android:name=".activities.PopupWord"
android:excludeFromRecents="true"
android:theme="@style/popups">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.PROCESS_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
我可以在 Android 10 中的 Twitter 等应用程序的文本选择菜单中看到我的 'Lookup' 按钮,但在 Android 11 中它消失了。令人惊讶的是它在 Chrome.
中有效Wikipedia Beta,以某种方式规避了这个问题,并在所有地方显示了它的 'Search in Wikipedia' 按钮。我试着查看它的清单,发现它很相似。
<activity
android:name="org.wikipedia.search.SearchActivity"
android:windowSoftInputMode="0x10">
<intent-filter
android:label="@ref/0x7f100190">
<action
android:name="android.intent.action.SEND" />
<category
android:name="android.intent.category.DEFAULT" />
<data
android:mimeType="text/plain" />
</intent-filter>
<intent-filter
android:label="@ref/0x7f100190">
<action
android:name="android.intent.action.PROCESS_TEXT" />
<category
android:name="android.intent.category.DEFAULT" />
<data
android:mimeType="text/plain" />
</intent-filter>
</activity>
(我尝试制作 mimeType text/plain 并添加标签,但没有帮助)
任何线索都会有所帮助。
所以我找到了发生这种情况的可能原因。
- 使用自定义文本编辑框或文本框的应用需要通过运行以下代码(More Details) 在文本选择菜单中手动添加按钮
public void onInitializeMenu(Menu menu) {
// Start with a menu Item order value that is high enough
// so that your "PROCESS_TEXT" menu items appear after the
// standard selection menu items like Cut, Copy, Paste.
int menuItemOrder = 100;
for (ResolveInfo resolveInfo : getSupportedActivities()) {
menu.add(Menu.NONE, Menu.NONE,
menuItemOrder++,
getLabel(resolveInfo))
.setIntent(createProcessTextIntentForResolveInfo(resolveInfo))
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
}
这需要应用程序扫描现有包以获得 Process_text 意图支持,但在 Android 11 中,我们无法访问所有已安装的包,只能访问 [=11 中的包=] 在 androidManifest.xml.
维基百科是一个著名的应用程序,推特必须将其添加到查询列表中,因此支持。
有同样的问题:我想要文本选择后的翻译选项,但很长时间都找不到它在我的应用程序定位中丢失的原因Android11。看起来即使使用没有自定义菜单的标准视图我们必须在 <queries>
PROCESS_TEXT
意图
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT" />
<data android:mimeType="text/plain" />
</intent>
</queries>
使用此代码段,所有外部应用项目都按预期可见。