我想等到android手機啓動 和MediaScanner完成。亞行接收廣播BOOT_COMPLETE
之後我想使用adb執行操作。
adb等待設備將在手機的啓動序列完成之前完成很多事情。
如何捕獲BOOT_COMPLETE通過ADB廣播? 類似於:等待啓動完成。 我不知道這是否可能?
我想等到android手機啓動 和MediaScanner完成。亞行接收廣播BOOT_COMPLETE
之後我想使用adb執行操作。
adb等待設備將在手機的啓動序列完成之前完成很多事情。
如何捕獲BOOT_COMPLETE通過ADB廣播? 類似於:等待啓動完成。 我不知道這是否可能?
您可以繼續輪詢sys.boot_completed
或dev.bootcomplete
系統屬性。
至於代碼,我不知道你使用的是什麼環境和/或腳本語言。這非常簡單。首先,您需要在手機軟件啓動完成時查找哪個屬性設置爲「1」。假設它是dev.bootcomplete
。然後手機啓動時
adb wait-for-device shell 'while [[ -z $(getprop dev.bootcomplete) ]] ; do sleep 1; done'
你可以添加一些代碼嗎? –
後,如果您的設備未安裝busybox的(見shell script in android gives [: not found)以下命令將控制返回給你的腳本,你可以嘗試在您的計算機進行迭代。像這樣的東西會工作:
while [ `adb shell getprop dev.bootcomplete` -nq "1" ] ; do sleep 1; done
如果您的設備已經安裝busybox的,你可以繼續亞歷克斯P.評論:
adb shell 'while [ ""`getprop dev.bootcomplete` != "1" ] ; do sleep 1; done'
當然的語法取決於你的機器(POSIX等)上。
對於那些在Windows環境下工作的人來說,這個批處理腳本適用於我。
它等待,直到ADB守護程序正在運行,然後開始輪詢sys.boot_completed
財產和等待1
值它不是作爲一個單一的線優雅,但我劇本中列出我的PATH環境變量,因此可以直接調用它。
adb wait-for-device
:CheckAgain
set value=
for /f "delims=" %%a in ('adb shell getprop sys.boot_completed') do @set value=%%a
IF NOT "%value%" == "1" (
timeout /t 2 /nobreak >NUL
goto CheckAgain
)
我的答案中的命令正在設備本身上運行 - 因此即使在Windows中運行,它的工作方式也是如此。只需用''替換'''' –
這兩個解決方案都可以工作,謝謝你們。 –
我相信你應該能夠看到的logcat – JesusFreke
的BOOT_COMPLETE廣播我怎麼訪問通過ADB編程內的一批? –
adb logcat | grep –
JesusFreke