【问题标题】:How to send string as keyboard output in android?如何在android中将字符串作为键盘输出发送?
【发布时间】:2019-08-23 20:00:13
【问题描述】:

假设我们有字符串String s= "Message from programmatic KeyboardPress"。如何将此字符串作为键盘输出发送。例如,用户当前专注于文本字段并出现我的字符串,因为已模拟键盘输出。

现在,我不想以编程方式设置 EditText 对象的文本。我想模拟一个真正的键盘输入。我发现了如何在基本的 java (How to send keyboard outputs) 中做到这一点。

如何在android java中实现这一点?

【问题讨论】:

  • 你在写键盘吗?使用 InputConnection.commitText()。你不是键盘吗?出于安全原因,没有办法这样做。
  • 不,我没有打开的键盘。你确定吗?因为我知道一些能够例如的 Android 设备。将字符串写入键盘输出或 BroadCastReceiver 输出。
  • 我刚刚意识到他们只能这样做,因为键盘是打开的。嗯....有没有办法获得当前打开的 InputConnection?谢谢你的帮助。
  • 键盘本身可以写字符串输出。应用程序可以通过调用 editText.getInoutConnection().commit Text() 将其伪装成自己。您根本无法将其伪造给另一个应用程序
  • :( 无论如何,谢谢!

标签: java android string keyboard


【解决方案1】:

对于未来的读者:

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?

【讨论】:

    猜你喜欢
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2015-11-26
    相关资源
    最近更新 更多