Android辅助功能AccessibilityService自动全选择文字粘贴模拟输入

不操千曲而后晓声,观千剑而后识器。这篇文章主要讲述Android辅助功能AccessibilityService自动全选择文字粘贴模拟输入相关的知识,希望能为你提供帮助。
网上找了很久AccessibilityService全选文字的方法,一直没找到,自己研究了半天,分享出来。

/** * 输入文本 */ public void inputText(List< String> viewIds, String text){ AccessibilityNodeInfo root = getRootInActiveWindow(); if(root == null) return; for (String id : viewIds){ final List< AccessibilityNodeInfo> list = root.findAccessibilityNodeInfosByViewId(id); if(list != null & & !list.isEmpty()){ AccessibilityNodeInfo info = list.get(0); //粘贴板 ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("label", text); clipboard.setPrimaryClip(clip); CharSequence txt = info.getText(); if(txt == null) txt = ""; if (Build.VERSION.SDK_INT > = Build.VERSION_CODES.JELLY_BEAN_MR2) { Bundle arguments = new Bundle(); arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT, 0); arguments.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT, txt.length()); info.performAction(AccessibilityNodeInfo.ACTION_FOCUS); info.performAction(AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments); info.performAction(AccessibilityNodeInfo.ACTION_PASTE); } break; } } }



上面这个方法使用了剪贴板是安卓4.3以上通用。
下面这种方法是安卓5.0以上:
if (Build.VERSION.SDK_INT > = Build.VERSION_CODES.LOLLIPOP) { Bundle arguments = new Bundle(); arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, txt); info.performAction(AccessibilityNodeInfo.ACTION_FOCUS); info.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments); }


【Android辅助功能AccessibilityService自动全选择文字粘贴模拟输入】
如果觉的有用,请在评论留下你的想法,感谢
---------------------
from :https://blog.csdn.net/sinat_25689603/article/details/80265347






    推荐阅读