1. 程式人生 > >python3:判斷手機的亮屏狀態

python3:判斷手機的亮屏狀態

在用python對手機做一些自動化操作時,常常會判斷手機的亮屏狀態,知曉手機的亮屏狀態後才好做進一步的動作,如給螢幕解鎖等。 
用於瞭解手機的亮屏情況,有一個adb命令可用:

adb shell dumpsys window policy

我們做一個實驗,分別在滅屏和亮屏的情況下run這個adb command,看打印出的info有何不同?

(注:將兩種情況的info copy至notepad++中選擇外掛中的compare進行比較)

從圖中可看出, 亮屏和滅屏的狀態,有幾行是有明顯不一樣的。
任挑一行用來作為check資料都是可以的,為了簡便,我們挑最明顯最短的:
mAwake=false


為詳細明瞭解checkpoint這一行的確定值,我們還是打其打印出來看看,因為有些字元看不了。怎麼看?
我們其它以下這句將列印的內容變成一個列表並列印檢視詳細的結果:

list = os.popen('adb shell dumpsys window policy').readlines()
print(list)

會發現這一行的內容為:'    mAwake=false\n', 而不是'mmAwake=false', 這一點要千萬注意,小心敗在細節哈
好,找到checkpoint了就好了,函式寫起來。

import os

def isAwaked(deviceid = ''):
    '''
    判斷的依據是'    mAwake=false\n'
    '''
    if deviceid == '':
        cmd = 'adb shell dumpsys window policy'
    else:
        cmd = 'adb -s ' + deviceid + ' shell dumpsys window policy'
    screenAwakevalue = '    mAwake=true\n' 
    allList = os.popen(cmd).readlines()
    if screenAwakevalue in allList:
        return True
    else:
        return False

if __name__ == '__main__':
    if isAwaked() == True:
		print('螢幕已點亮。')
	else:
		print('螢幕已滅屏。')

相關推薦

移動端判斷手機橫豎狀態

func ble ole dcl 功能 dia 使用 ati 必須 禁用用戶自動縮放功能: <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0

python3:判斷手機狀態

在用python對手機做一些自動化操作時,常常會判斷手機的亮屏狀態,知曉手機的亮屏狀態後才好做進一步的動作,如給螢幕解鎖等。  用於瞭解手機的亮屏情況,有一個adb命令可用: adb shell dumpsys window policy 我們做一個實驗,分別在滅屏和亮屏

判斷手機和豎方向

function orient() { if (window.orientation == 90 || window.orientation == -90) { //ipad、iphone豎屏;Andriod橫屏 $("body").attr("class", "la

使用SurfaceView實現手機狀態下的靜默拍照儲存,上傳伺服器

注意:本文章只適用於技術交流,請你友好交流淨化開發環境 思考 由於谷歌強制在Android應用開發中編寫拍照程式是必需要有影象預覽的。這對那些惡意程式比如Android中氾濫的Service在後臺偷偷記錄手機使用者的行為與周邊資訊。這樣的門檻還包括手機

H5移動端橫豎切換監聽 副作用——手機狀態下安卓機input 問題

H5移動端橫豎屏切換監聽 上一次說過了 H5移動端橫豎屏切換監聽的寫法。 橫豎屏監聽程式碼如下,這裡就不做詳細說明了。完整說明 $(function(){//監聽橫豎屏旋轉,ios 和 Android 寫法不一樣 onResize();

判斷手機是豎還是橫狀態

<script>     // 判斷橫屏展示時的狀態     window.onorientationchange=function(){         if(window.orienta

檢測手機幕是否解鎖

inpu 運行 locks adb shell key 亮屏 根據 input statusba 通過adb命令獲取手機是否鎖屏狀態,可以通過下面指令:1.adb shell dumpsys window policy^|grep isStatusBarKeyguard2.

使用JavaScript判斷手機處於橫還是豎

ipa OS .com 添加 () cti lis else 方向 移動端的瀏覽器一般都支持window.orientation這個參數,通過這個參數可以判斷出手機是處在橫屏還是豎屏狀態。從而根據實際需求而執行相應的程序。通過添加監聽事件onorientationchang

如何判斷手機是否處於漫遊狀態

手機專業術語中的漫遊與我們日常生活中的“省內漫遊”,“全國漫遊”不是一回事。 這裡的漫遊,是指手機使用一個運營商的SIM卡,註冊上另一個運營商的網路。 判定是否漫遊,是通過比較sim卡的PLMN與註冊上網路的PLMN,不會去check是本地卡還是異地卡。 程式碼中更新手機漫遊狀態,是在srv

iOS 解決蘋果手機後APP退出的問題及app狀態

進入後臺程式退出是由iOS系統管理決定的,但APP退出在後臺後,只有10秒的持續執行時間,然後暫停。但該APP還在記憶體中,當出現記憶體警告,也就是別的APP要執行,而此時記憶體又不足的情況下,系統會回收停在後臺APP所佔用的記憶體。如果出現這種情況,那麼你再次開啟你的APP

iOS開發之應用內檢測手機,解鎖狀態

iPhone的鎖屏監測分為兩種方式監聽: 1. 程式在前臺,這種比較簡單。直接使用Darwin層的通知就可以了: #import <notify.h> #define NotificationLock CFSTR("com.apple.springboa

android之PowerManager 與電源管理,解決滅狀態下來簡訊螢幕不會點問題

  可解決滅屏狀態下來簡訊螢幕不會點亮問題    PowerManager這個類主要是用來控制電源狀態的. 通過使用該類提供的api可以控制電池的待機時間,一般情況下不要使用。如果確實需要使用,那

Android檢測手機以及保持螢幕常

//保持手機常亮並解鎖 private void wakeAndUnlock() { //獲取電源管理器物件 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

robotframework+appium進行app自動化,自動安卓手機方法

robotframework+appium進行app自動化時,為了做到定時可以執行用例,保證手機可以一直在亮屏狀態,寫了如下方法以資源方式匯入專案,直接使用adb_screenOn()方法,不論螢幕是否

Android鎖狀態下點螢幕並彈窗提醒

類似於手機鎖屏狀態下QQ來訊息然後點亮螢幕並彈窗,如圖。 相信QQ的這個功能大家都是很熟悉的了,下面就開始講具體的實現步驟。 一、新建一個Activity並在OnCreate中新增四個標識 @Override protected

js判斷手機端訪問跳轉到手機

turn -1 phone lac ice 情況 follow linu 手機端 <SCRIPT LANGUAGE="JavaScript"> function mobile_device_detect(url) { var thisOS=navi

JS 判斷手機操作系統代碼

hone pad get user log one return 判斷 返回值 還是利用UA, 返回值: ios, android, unknown function getMobileType () { var ua = window.navigator.us

python3 判斷大小寫

字符 pytho 51cto com 字母 字符串 title per pyhton 轉自http://wangwei007.blog.51cto.com/68019/1134323# 一、pyhton字符串的大小寫轉換, 常用的有以下幾種方法:# 1、對字符串中所有字符(

php判斷手機段登錄,以及phpcms手機PC雙模板調用

mod pod 找不到 並且 mat pla sse 運行 highlight 首先一段php代碼判斷是否為手機瀏覽: function isMobile() { // 如果有HTTP_X_WAP_PROFILE則一定是移動設備 if (isset ($

php 判斷手機端與微信

min aso text plain nokia pla com mobile r12 1、判斷手機端 function isMobile() { // 如果有HTTP_X_WAP_PROFILE則一定是移動設備 if (isset($_SERVER[‘HTTP_