ana ekran görünene kadar cihaz için beklemeyi nasıl ekleyebilirim?


18

Adb kullanarak ekranımın kilidini açmam gerekiyor ve cihaz için beklemek çok erken (cihaz önyükleme yaparken) çıkıyor ve ekran kilidini açma başarısız oluyor. Ana ekranın tespit edilmesinin bir yolu var mı, o zaman ekran kilidini açabiliyorum?

Ekran kilidini açmak için kullandığım komut bu -

adb wait-for-device shell input keyevent 82

Yanıtlar:


23

Cihazın beklemesini sağlayın, çünkü zaten fark ettiğiniz gibi sadece adb arka plan programı düzgün bir şekilde başlayana kadar bekler. Bu zaten başlangıç ​​aşamasında. Tam bir önyükleme olup olmadığını kontrol etmek için betiğinize aşağıdaki gibi bir reklam veremezsiniz:

sözde:

  1. bekle-için-cihaza
  2. getprop sys.boot_completed! = 1 uyku birkaç saniye getprop sys.boot_completed öğesini tekrar kontrol edin
  3. kabuk giriş tuşu 82

Bu çalışmalı.

Bunun gibi bir şey:

#!/bin/bash

adb wait-for-device

A=$(adb shell getprop sys.boot_completed | tr -d '\r')

while [ "$A" != "1" ]; do
        sleep 2
        A=$(adb shell getprop sys.boot_completed | tr -d '\r')
done

adb shell input keyevent 82

Bu test edilmedi, bu yüzden olası hataların farkında olun


Kolayca okunabilmesi için lütfen yanıtınızı düzenleyin. Geçerli bir cevabınız var, ancak biraz açıklık herkese yardımcı olacaktır. Teşekkürler
HasH_BrowN

cevap şimdi düzenlenmiştir. Umarım bu size yardımcı olur :)
sıfıra bölünmüş

iyi cevap +1, şimdi diğerleri takip edebilecek. Kazara bu anlar için " Her zaman bir yedek gerçekleştir " eklemeyi unutmayın ;)
HasH_BrowN

2
Ben sonuç getpropsonra bir satırbaşı vardı bulundu , bu yüzden hile adbyapmak için komut değiştirerek $(adb shell getprop sys.boot_completed | tr -d '\r'). Bu sadece satırbaşı karakterini kesiyor.
CoatedMoose

@ sıfıra bölündüğünde lütfen yanıtınızı CoatedMoose tarafından belirtilen kırpmayı içerecek şekilde değiştirin. Umang lütfen cevap olarak kabul edin.
Jayshil Dave

9

Bu eski bir soru ve sınır dışı konu dışıdır, ancak tek bir satırda nasıl yapılacağı aşağıda açıklanmıştır:

adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done; input keyevent 82'

0

İşte ben geldim:

adb wait-for-device shell <<ENDSCRIPT
echo -n "Waiting for device to boot "
echo "" > /data/local/tmp/zero
getprop dev.bootcomplete > /data/local/tmp/bootcomplete
while cmp /data/local/tmp/zero /data/local/tmp/bootcomplete; do 
{
    echo -n "."
    sleep 1
    getprop dev.bootcomplete > /data/local/tmp/bootcomplete
}; done
echo "Booted."
exit
ENDSCRIPT

echo "Waiting 30 secs for us to be really booted"
sleep 30

echo "Unlocking screen"
adb shell "input keyevent 82"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.