Android 模拟键盘输入 - ythy/blog GitHub Wiki
重点
-
adb shell input text命令 -
if you want to send embedded spaces with the input command, use %s
adb shell input text 'this%sis%san%sexample'
will yield
this is an example -
输入text 手机实测有等待及延时,不能立即输入其他shell命令,所以需要设置合理的间隔时间。
实例
private void startMoyao(){
mHackThreadCount = Integer.MAX_VALUE;
final int duration = 3;
new Thread(new Runnable() {
@Override
public void run() {
int turn = duration;
sendKeyEventCode("chen gc");
sendKeyEventCode("e");
sendKeyEventCode("e");
sendKeyEventCode("n");
sendKeyEventCode("xiuxi beg", 2000);
while(mHackThreadCount-- > 0){
sendKeyEventCode("ask ping about job");
sendKeyEventCode("moyao", 8000);
if(--turn == 0){
turn = duration;
sendKeyEventCode("xiuxi beg", 2000);
}
}
}
}
).start();
}
private void sendKeyEventCode(String input, int delay){
sendKeyEventCodeAct(input, delay);
}
private void sendKeyEventCode(String input){
sendKeyEventCodeAct(input, 500);
}
private void sendKeyEventCodeAct(String input, int delay){
if(mHackThreadCount <= 0)
return;
input = input.replaceAll("\\s", "%s");
try {
execShellCmd("input text " + input);
Thread.sleep( input.length() * 150 > 1500 ? 1500 : input.length() * 150);
execShellCmd("input keyevent 66" );
Thread.sleep(delay);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
execShellCmd 方法在前一篇wiki有介绍