2014-01-28 66 views
8

我在尋找是否有可能確定屏幕是否在使用亞行的Android設備上。我需要知道這一點我試圖運行使用猴子亞軍的一些測試。是否有可以輸入的shell命令,因此包含在猴子運行程序命令中,它將明確告訴我屏幕是開還是關?如何判斷屏幕是否與亞行相關

+0

http://stackoverflow.com/a/19612157/1778421 –

+0

@AlexP 。是的,我錯過了這個答案。 –

回答

9

在做一些測試,我發現,使用adb shell dumpsys power | grep mScreenOn將在具有的4.2+

,我發現對我到目前爲止測試的所有設備的工作指令版本號設備的工作就是用:

adb shell dumpsys input_method | grep mScreenOn 

這將產生類似:

mSystemReady=true mScreenOn=true 

,你可以用它來確定屏幕上。

在範圍2.2測試在所有的Android仿真器 - 4.4.2,三星Galaxy SII(4.0.4),三星Galaxy Tab 8.9(4.0.4),和Nexus 4 CM11

另外值得一提,預4.2設備,您可以使用命令adb shell dumpsys power | grep mPowerState得到的東西是這樣的:

mIsPowered=true mPowerState=3 mScreenOffTime=24970 ms 
mPowerState=SCREEN_BRIGHT_BIT SCREEN_ON_BIT 

並檢測SCREEN_ON_BIT串存在

+5

在棒棒糖(Nexus 6)上,第一個命令在屏幕打開時響應'mInteractive = true',或在關閉時響應'mInteractive = false';而第二個命令在打開時響應'顯示功率:狀態= ON',屏幕關閉時'狀態=關閉'。 – Joe

4

是的,如果你輸入:

adb shell dumpsys power | grep mScreenOn 

這將返回一個true或false值告訴你的畫面是否是當前的。它應該是這樣的:

mScreenOn=true 

知道了這一點,所有你需要做的是解析真/假值出來的結果,物料shell命令成猴子亞軍腳本。

這是在運行4.4.2的Android設備上測試的。

+0

轉儲服務可能因您使用的設備而異。在我的Nexus 4仿真器上,我需要轉儲input_method而不是電源。 –

+0

@CarloB。這也是很好的知道,我有一個物理的Nexus 4和5兩個運行4.4.2,都會響應dumpsys的力量。我很好奇,如果你的命令是特定於模擬器或特定版本的Android。 –

相關問題