
Samsung Galaxy Tab 2 GT-P5100
ADB 셸을 사용하여 루팅된 Android 4.0.4에서 전원 버튼 누르기를 시뮬레이션하고 싶습니다 .
이를 위해 다음을 사용하여 관련 권한을 변경했습니다.
adb shell
su
chmod 666 /dev/input/event1
이것이 성공했는지 어떻게 알 수 있나요?
다음 명령이 잠금 화면을 표시할 것이라고 생각했습니다.
input keyevent 116
오류는 발생하지 않지만 아무 일도 일어나지 않습니다 ...
또는 다음과 같은 키 코드의 텍스트 형식을 사용했습니다.
input keyevent KEY_POWER
이 경우 출력은 Killed
-이것은 무엇을 의미 하는가?
마지막으로 다음을 시도했습니다.
sendevent dev/input/event1 1 116 1 ; sendevent dev/input/event1 1 116 0
운이 없군요 :(
내가 도대체 뭘 잘못하고있는 겁니까?
getevent -i /dev/input/event1
다음을 출력합니다:
add device 1: /dev/input/event1
bus: 0000
vendor: 0000
product: 0000
version: 0000
name: "sec_key"
location: ""
id: ""
version: 1.0.1
events:
KEY (0001): 0072 0073 0074
input props:
<none>
키에는 0074
텍스트 라벨이 있습니다 KEY_POWER
.
답변1
전원 버튼 누르기는 몇 가지 이벤트로 구성됩니다. 다음 명령을 입력하여 확인할 수 있습니다.
adb shell getevent -l
그리고 전원 버튼을 누르세요. Nexus 5 에뮬레이터의 결과는 다음과 같습니다.
/dev/input/event0: EV_KEY KEY_POWER DOWN
/dev/input/event0: EV_SYN SYN_REPORT 00000000
/dev/input/event0: EV_KEY KEY_POWER UP
/dev/input/event0: EV_SYN SYN_REPORT 00000000
터치 이벤트 입력 파일 /dev/input/event는 장치마다 다를 수 있습니다. 이 경우에는 event0입니다.
장치에 이벤트를 쓰기 전에 터치 이벤트 파일의 모드를 변경해야 합니다.
adb shell
chmod 666 /dev/input/event0
키에 대한 모든 정의는 다음에서 찾을 수 있습니다. http://androidxref.com/4.4_r1/xref/prebuilds/ndk/6/platforms/android-9/arch-arm/usr/include/linux/input.h
sendevent 키의 값은 다음과 같아야 합니다.소수
전원 버튼 누르기를 에뮬레이트하려면 해당 이벤트를 모두 작성해야 합니다.
adb shell sendevent /dev/input/event0 1 116 108
adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 1 116 103
adb shell sendevent /dev/input/event0 0 0 0
Nexus 5 에뮬레이터에서 테스트했는데 작동합니다.
답변2
올바른 방법으로 보내지 않기 때문입니다. 보내는 것만으로는 부족해요
sendevent dev/input/event1 1 116 1 ; sendevent dev/input/event1 1 116 0
아래 방법을 시도해 보세요. ;)
sendevent dev/input/event1 1 116 1 ; sendevent dev/input/event1 0 0 0 ;sendevent dev/input/event1 1 116 0 ;sendevent dev/input/event1 0 0 0