O pressionamento do botão liga / desliga consiste em alguns eventos. Você pode verificar isso digitando o comando:
adb shell getevent -l
e, em seguida, pressione o botão liga / desliga. No emulador nexo 5, o resultado é:
/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
O arquivo de entrada do evento de toque / dev / input / event pode ser deferente de dispositivo para dispositivo. Neste caso, é event0.
Antes de gravar eventos no dispositivo, você precisa alterar o modo do arquivo de eventos de toque:
adb shell
chmod 666 /dev/input/event0
Todas as definições de chaves podem ser encontradas em link
O valor das chaves sendevent deve ser decimal
Para emular o botão liga / desliga, você tem que escrever todos eventos:
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
Eu testei no emulador do Nexus 5 e funciona.