Verificar se a tela do celular está bloqueada via ADB
Dica publicada em Android / Desenvolvimento
Verificar se a tela do celular está bloqueada via ADB
Dica rápida de como verificar, via linha de comando, se o teu celular Android está com a tela bloqueada ou não.
Essa necessidade surgiu quando agendei um script na minha crontab para executar no meu smartfone, porém ele entrava em conflito de cliques quando eu estava usando o celular na mesma hora.
Estou partindo do princípio que você já conhece o ADB e seu celular está devidamente conectado ao seu Linux. Se não faz ideia sobre o assunto, recomendo a leitura do seguinte artigo: Assumindo o controle do teu Android com ADB [Artigo]
Vamos desconstruir o comando:
adb shell dumpsys
Irá mostrar todas as informações do sistema, muita coisa mesmo... então vamos restringir à informações de janelas (a tela de bloqueio é uma janela):
adb shell dumpsys window
Porém a informação que nos interessam é a mDreamingLockscreen, se ela estiver como "true" significa que o celular está com a tela bloqueada, independente da tela estar ligada ou não.
adb shell dumpsys window | grep 'mDreamingLockscreen=true'
mShowingDream=false mDreamingLockscreen=true mDreamingSleepToken=null
Sendo assim, se quiser criar um shell script que aborte a execução caso o celular esteja sendo utilizado, adicione o seguinte bloco de código:
Fonte: Is there a way to check if Android device screen is locked via adb? - Stack Overflow
Essa necessidade surgiu quando agendei um script na minha crontab para executar no meu smartfone, porém ele entrava em conflito de cliques quando eu estava usando o celular na mesma hora.
Estou partindo do princípio que você já conhece o ADB e seu celular está devidamente conectado ao seu Linux. Se não faz ideia sobre o assunto, recomendo a leitura do seguinte artigo: Assumindo o controle do teu Android com ADB [Artigo]
Vamos desconstruir o comando:
adb shell dumpsys
Irá mostrar todas as informações do sistema, muita coisa mesmo... então vamos restringir à informações de janelas (a tela de bloqueio é uma janela):
adb shell dumpsys window
Porém a informação que nos interessam é a mDreamingLockscreen, se ela estiver como "true" significa que o celular está com a tela bloqueada, independente da tela estar ligada ou não.
adb shell dumpsys window | grep 'mDreamingLockscreen=true'
mShowingDream=false mDreamingLockscreen=true mDreamingSleepToken=null
Sendo assim, se quiser criar um shell script que aborte a execução caso o celular esteja sendo utilizado, adicione o seguinte bloco de código:
#verificar se tela está ligada: if ! adb -s $ID shell dumpsys window | grep 'mDreamingLockscreen=true' then echo "tela ligada, abortar" exit fi
Fonte: Is there a way to check if Android device screen is locked via adb? - Stack Overflow
Dica bem bacana.
___________________________________________________________