Làm thế nào để adb chờ thiết bị cho đến khi màn hình chính xuất hiện?


18

Tôi cần mở khóa màn hình của mình bằng adb và chờ thiết bị thoát quá sớm (khi thiết bị khởi động) và mở khóa màn hình không thành công. Có cách nào để phát hiện ra màn hình chính, vì vậy tôi có thể kích hoạt mở khóa màn hình không?

Đây là lệnh tôi đang sử dụng để mở khóa màn hình -

adb wait-for-device shell input keyevent 82

Câu trả lời:


23

cũng chờ thiết bị, vì bạn đã nhận ra chỉ đợi cho đến khi trình nền adb bắt đầu đúng cách. Điều này đã ở thời điểm init. Để kiểm tra khởi động hoàn chỉnh, bạn không thể quảng cáo cho tập lệnh của mình một cái gì đó như:

trong giả:

  1. chờ thiết bị
  2. miễn là getprop sys.boot_completed! = 1 ngủ vài giây kiểm tra getprop sys.boot_completed một lần nữa
  3. shell keyevent 82

Điều này nên làm việc.

Một cái gì đó như thế này:

#!/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

Điều này không được kiểm tra vì vậy hãy nhận thức được những sai lầm tiềm ẩn


Vui lòng chỉnh sửa câu trả lời của bạn để dễ đọc. Bạn có một câu trả lời hợp lệ, nhưng một chút rõ ràng sẽ giúp tất cả mọi người. Cảm ơn
HasH_BrowN

Câu trả lời đã được chỉnh sửa. Hy vọng điều này sẽ giúp bạn :)
chia cho số 0

câu trả lời tốt +1, bây giờ những người khác sẽ có thể làm theo nó. Đừng quên thêm " Luôn thực hiện sao lưu ", cho những khoảnh khắc tình cờ đó;)
HasH_BrowN

2
Tôi thấy rằng kết quả của việc getpropcó một chiếc xe ngựa trở lại sau đó, vì vậy thay đổi adblệnh để $(adb shell getprop sys.boot_completed | tr -d '\r')thực hiện mánh khóe. Đây chỉ là cắt tỉa nhân vật trở về xe ngựa.
CoatedMoose

@ chia cho 0, vui lòng sửa đổi câu trả lời của bạn để bao gồm phần cắt xén được đề cập bởi CoatedMoose. Umang xin vui lòng chấp nhận nó như là một câu trả lời là tốt.
Jayshil Dave

9

Đây là một câu hỏi cũ và ngoài chủ đề ngoài lề nhưng đây là cách thực hiện trong một dòng duy nhất:

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

0

Đây là những gì tôi nghĩ ra:

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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.