gpt4 book ai didi

android - AccessibilityNodeInfo - 发送文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:56 35 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,我必须将文本发送到其他应用程序的焦点 EditText 字段。

我在 API level 18 及更高版本中使用 AccessibilityService 完成了此操作,当我找到 EditText 时,我从剪贴板粘贴数据。这是代码,

public class TestService extends AccessibilityService {

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
AccessibilityNodeInfo source = event.getSource();
if (source != null && event.getEventType() == AccessibilityEvent.TYPE_VIEW_CLICKED && event.getClassName().equals("android.widget.EditText")) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", "TEST DATA");
clipboard.setPrimaryClip(clip);
source.performAction(AccessibilityNodeInfo.ACTION_PASTE);
}
}
}

但是,AccessibilityNodeInfo.ACTION_PASTE 在 API 级别 18 及更高版本中可用。

我们能否在 API 级别 < 18 中实现相同的目标?

我在一些博客中读到可以使用 InputMethodService 来完成,我们在其中创建自己的键盘并通过该软键盘发送文本。我没看懂很多...

谁能帮我解决这个问题。

最佳答案

您可以使用 API 14 中的 ACTION_PASTE,但您必须调用 AccessibilityRecordCompatAccessibilityNodeInfoCompat,如下所示:

AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event);
AccessibilityNodeInfoCompat source = record.getSource();
source.performAction(AccessibilityNodeInfo.ACTION_PASTE);

关于android - AccessibilityNodeInfo - 发送文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23100695/

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