android shell检查是否锁屏_ADB获取手机屏幕的状态(点亮与否)以及ADB点击事件基本操作...
一、文檔概述
在對Android設備操作之前,經常需要通過adb獲取一些設備基本信息。尤其是在全自動運行過程中,盡量減少人工的干預。本文檔記錄了檢查手機屏幕的狀態(tài)以及解鎖的方式。
二、技術基礎
在項目開發(fā)過程中,會經常用到adb對設備進行操作或者獲取一些基本信息。其中對屏幕解鎖以及獲取屏幕狀態(tài)也是比較重要的。
已知的操作方式,通過adb命令模擬按鍵事件。
// 點亮屏幕
adb shell input keyevent 26
// 嘗試解鎖
adb shell input keyevent 82
通過adb按鍵事件可以實現(xiàn)基本的點亮屏幕以及基本的解鎖操作。現(xiàn)在存在一個問題,如何判斷什么時候需要點擊電源按鈕點亮屏幕呢?
三、實現(xiàn)細節(jié)
通過第二部分的描述,我們已經可以實現(xiàn)基本的操作,但是現(xiàn)在的問題在于什么情況下需要進行電源操作。
調試命令
關于屏幕的信息應該在這個命令內有描述。再結合:檢測手機屏幕是否亮屏解鎖
經過測試發(fā)現(xiàn),的確可以判斷屏幕是否點亮,但是代碼邏輯并不完善,還存在點亮未解鎖的情況。
現(xiàn)在需要判斷鎖屏狀態(tài)下屏幕是否點亮。
通過控制變量的方式,輸出信息做對比。
熄屏狀態(tài)得到的窗口策略信息:
熄屏
屏幕點亮狀態(tài)下獲取到的窗口策略信息:
屏幕點亮
通過對兩次輸出做對比:
輸出對比
因此,只要判斷如下代碼即可區(qū)分出屏幕狀態(tài):
mScreenOnEarly=false mScreenOnFully=false mOrientationSensorEnabled=false
其中,三個變量只需要比對一個即可。當值為true表示屏幕已點亮。
通過判斷以上輸出即可決定是否需要執(zhí)行屏幕點亮的操作了。
四、工程代碼
Python示例代碼:
stdout, stderr = CmdUtils.runCmd('adb shell dumpsys window policy', True)
if 'mShowingLockscreen=true' in stdout:
if 'mScreenOnEarly=false' in stdout:
os.system('adb shell input keyevent 26')
os.system('adb shell input keyevent 82')
注:CmdUtils.runCmd() 函數(shù)為獲取cmd命令的輸出結果
五、小結
關于adb的功能,看來我還是知之甚少啊。繼續(xù)學習adb,強大到讓你懷疑自己。
總結
以上是生活随笔為你收集整理的android shell检查是否锁屏_ADB获取手机屏幕的状态(点亮与否)以及ADB点击事件基本操作...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能电视怎么看直播(什么是人工智能)
- 下一篇: 智能脉冲充电器(什么是人工智能)