我正在开发一个 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 Level < 18 中达到同样的效果吗?
我在一些博客中读到它可以使用 来完成InputMethodService
,我们在其中创建自己的键盘并通过该软键盘发送文本。很多我没看懂。。。
有人可以帮我解决这个问题。