adb shell input keyevent和adb shell sendevent的基本区别是什么?我应该用哪一个来输入字符?传递给两个命令的键码是否相同?
当前回答
如果您想在多个设备连接时将文本发送到特定设备。首先使用adb设备查找附加设备
adb devices
List of devices attached
3004e25a57192200 device
31002d9e592b7300 device
然后获取您的特定设备id并尝试以下操作
adb -s 31002d9e592b7300 shell input text 'your%stext'
其他回答
向运行在android设备上的React-Native应用程序发送重载调用:adb shell input keyboard text "rr"
另外,如果您想用输入命令发送嵌入式空格,请使用%s
adb shell input text 'this%sis%san%sexample'
将产生
这是一个例子
被输入。
%本身不需要转义-只有特殊的%s对被特殊处理。这当然会导致一个明显的问题,即如何输入字符串%s,这必须使用两个单独的命令来完成。
如果您想在多个设备连接时将文本发送到特定设备。首先使用adb设备查找附加设备
adb devices
List of devices attached
3004e25a57192200 device
31002d9e592b7300 device
然后获取您的特定设备id并尝试以下操作
adb -s 31002d9e592b7300 shell input text 'your%stext'
另一个区别是:
"adb shell input"调用input.jar来处理和发送来自android框架Java层的键码。 "adb sendevent"实际上是c代码(toolbox实用程序的一部分),它将输入代码直接发送到/dev/input....的Linux输入子系统。
更多详细的代码跟踪到AOSP框架可以在这里找到:
http://www.srcmap.org/sd_share/4/aba57bc6/AOSP_adb_shell_input_Code_Trace.html#RefId=7c8f5285
顺便说一下,如果你试图找到一种方法发送双引号到设备,尝试以下:
Adb shell输入文本“\”
我不确定为什么没有引用的事件代码,但这个解决方法可以工作。此外,如果你正在使用MonkeyDevice(或黑猩猩聊天),你应该在调用MonkeyDevice之前测试每个字符。输入,否则当你尝试发送时,你什么也得不到
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件