如何在 android 中将字符串作为键盘输出发送?
How to send string as keyboard output in android?
假设我们有字符串 String s= "Message from programmatic KeyboardPress"
。如何将此字符串作为键盘输出发送。例如,由于模拟了键盘输出,用户当前专注于文本字段并且出现了我的字符串。
现在,我不想以编程方式设置 EditText 对象的文本。我想模拟一个真实的键盘输入。我在基本 java (How to send keyboard outputs).
中找到了如何做
如何在 android java 中实现这一点?
对于未来的读者:
Gabe Sechan(谢谢!)指出由于安全限制,这在 android 中是不可能的。所以我想到的是将字符串复制到剪贴板。它不如直接模拟键盘输出那么快,但至少它有效。
在我的例子中,我需要 运行 主线程之外的代码,所以我使用了这个:
runOnUiThread(new Runnable() {
@Override
public void run() {
ClipboardManager clipboard = (ClipboardManager) getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("message", s);
clipboard.setPrimaryClip(clip);
}
});
有关如何将内容复制到剪贴板的更多信息,请查看:How to Copy Text to Clip Board in Android?
假设我们有字符串 String s= "Message from programmatic KeyboardPress"
。如何将此字符串作为键盘输出发送。例如,由于模拟了键盘输出,用户当前专注于文本字段并且出现了我的字符串。
现在,我不想以编程方式设置 EditText 对象的文本。我想模拟一个真实的键盘输入。我在基本 java (How to send keyboard outputs).
中找到了如何做如何在 android java 中实现这一点?
对于未来的读者:
Gabe Sechan(谢谢!)指出由于安全限制,这在 android 中是不可能的。所以我想到的是将字符串复制到剪贴板。它不如直接模拟键盘输出那么快,但至少它有效。
在我的例子中,我需要 运行 主线程之外的代码,所以我使用了这个:
runOnUiThread(new Runnable() {
@Override
public void run() {
ClipboardManager clipboard = (ClipboardManager) getApplicationContext().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("message", s);
clipboard.setPrimaryClip(clip);
}
});
有关如何将内容复制到剪贴板的更多信息,请查看:How to Copy Text to Clip Board in Android?