我正在通过USB(使用ADB)将HTC Nexus One连接到我的PC,运行Android 2.3.6,启用调试模式。 发送个人密钥,Works!
adb shell input keyevent 82
adb shell input keyevent 20
adb shell input keyevent 20
adb shell input keyevent 22
adb shell input keyevent 22
adb shell input keyevent 22
adb shell input keyevent 66
但是,发送触摸事件本身,失败
adb shell sendevent /dev/input/event3 0003 48 104
adb shell sendevent /dev/input/event3 0003 50 10
adb shell sendevent /dev/input/event3 0003 53 200
adb shell sendevent /dev/input/event3 0003 54 57
adb shell sendevent /dev/input/event3 0000 2 00000000
adb shell sendevent /dev/input/event3 0003 18 47
adb shell sendevent /dev/input/event3 0003 20 00000001
adb shell sendevent /dev/input/event3 0000 0000 00000000
adb shell sendevent /dev/input/event3 0003 48 00000000
adb shell sendevent /dev/input/event3 0003 50 10
adb shell sendevent /dev/input/event3 0003 53 200
adb shell sendevent /dev/input/event3 0003 54 57
adb shell sendevent /dev/input/event3 0000 0002 00000000
adb shell sendevent /dev/input/event3 0003 18 32
adb shell sendevent /dev/input/event3 0003 20 00000000
adb shell sendevent /dev/input/event3 0000 0000 00000000
以下是我从getevents获得的输出:
add device 1: /dev/input/event6
name: "mahimahi-nav"
add device 2: /dev/input/event5
name: "mahimahi-keypad"
add device 3: /dev/input/event4
name: "proximity"
add device 4: /dev/input/event3
name: "synaptics-rmi-touchscreen"
add device 5: /dev/input/event2
name: "compass"
add device 6: /dev/input/event1
name: "h2w headset"
add device 7: /dev/input/event0
name: "lightsensor-level"
任何想法或想法如何通过亚行发送触摸事件?
答案 0 :(得分:1)
我认为您需要设置X和Y轴触点,然后尝试发送事件。另外,请确保转换此
adb shell sendevent /dev/input/event3 0003 48 104
adb shell sendevent /dev/input/event3 0003 50 10
adb shell sendevent /dev/input/event3 0003 53 200
adb shell sendevent /dev/input/event3 0003 54 57
adb shell sendevent /dev/input/event3 0000 2 00000000
像这样的十进制值(因为我只为第一行做了但你需要为所有人做到这一点),
adb shell sendevent /dev/input/event3 3 72 260.
有关详细信息,请查看此链接http://softteco.blogspot.com/2011/03/android-low-level-shell-click-on-screen.html
答案 1 :(得分:1)
我设法使用以下代码模拟Nexus 7(Android 4.2.0)中的触摸点击:
public static void performClick(int x, int y) {
try {
executeCommand("sendevent /dev/input/event0 3 57 21");
executeCommand("sendevent /dev/input/event0 3 48 9");
executeCommand("sendevent /dev/input/event0 3 58 182");
executeCommand("sendevent /dev/input/event0 3 53 " + x);
executeCommand("sendevent /dev/input/event0 3 54 " + y);
executeCommand("sendevent /dev/input/event0 0 0 0");
executeCommand("sendevent /dev/input/event0 3 57 4294967295");
executeCommand("sendevent /dev/input/event0 0 0 0");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TimeoutException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void executeCommand(String command) throws InterruptedException, IOException, TimeoutException {
CommandCapture cmd = new CommandCapture(0, command);
RootTools.getShell(true).add(cmd).waitForFinish();
}