gpt4 book ai didi

android - 如何使用从您的应用程序外部提供的 "Text Selection"的新 Android M 功能?

转载 作者:可可西里 更新时间:2023-11-01 18:46:04 28 4
gpt4 key购买 nike

背景

Android M 提供了一种处理选定文本的新方法(链接 here ),即使是在您的应用之外。文本选择可以这样处理:

enter image description here

我知道可以从应用程序外部处理选定的文本,因为如果我转到网络浏览器(或任何其他允许文本选择的地方),我可以看到我可以使用“API 演示”应用程序来处理选定的文本。

问题

我看不到很多关于如何做的信息。

问题

  1. 应该在代码(和 list )中添加什么才能从应用程序外部处理选定的文本?
  2. 是否可以将选择限制为某些类型的文本?例如,仅当文本类型是有效电话号码时才提供显示应用程序?

最佳答案

首先,澄清问题:在 M 模拟器上,如果突出显示文本,您将看到新的 float 操作模式。如果您单击溢出图标,您将看到“API DEMOS”出现:

M Developer Preview Emulator

单击它会从 API 演示应用程序中调出一个 Activity ,显示突出显示的文本:

Another M Developer Preview Emulator

替换字段中的值并单击按钮将替换文本放入,以替换您突出显示的内容。


警告:以下解释来自检查 API 演示代码和 M Developer Preview 文档。这很有可能会在 M 为 realz 发货之前改变。 YMMV,除非您使用公制系统,在这种情况下为 YKMV。

有问题的 Activity ,即接收文本,支持 ACTION_PROCESS_TEXT作为 Intent行动。 EXTRA_PROCESS_TEXT将包含一些文本,或 EXTRA_PROCESS_TEXT_READONLY如果文本是只读的,将保留它。该 Activity 将通过 startActivityForResult() 调用.结果 Intent可以有自己的EXTRA_PROCESS_TEXT值,这将是替换文本。

所以,具体问题:

What should be added in code (and manifest) to be able to handle the selected text from outside the app ?

见上文。请注意,API 演示 Activity (ProcessText) 具有此 <intent-filter> :

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

文档不讨论 MIME 类型。我没有运行任何实验来确定是否需要 MIME 类型,以及我们可能得到的其他内容(text/html 对于具有跨度的内容?)。

Is it possible to limit the selection to certain types of texts ? For example, offer to show the app only if the text type is a valid phone number ?

鉴于文档,这似乎是不可能的。话虽如此,这当然是一个合理的想法(例如,通过文本必须匹配的 list 中的元数据来宣传一个正则表达式或多个正则表达式)。

关于android - 如何使用从您的应用程序外部提供的 "Text Selection"的新 Android M 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30518089/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com