前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[1159]adb判断手机屏幕状态并点亮屏幕

[1159]adb判断手机屏幕状态并点亮屏幕

作者头像
周小董
发布2022-09-26 10:38:34
1.6K0
发布2022-09-26 10:38:34
举报
文章被收录于专栏:python前行者python前行者
  • 唤醒屏幕操作

代码语言:javascript
复制
os.system("adb shell input keyevent KEYCODE_POWER")
or
os.system('adb shell input keyevent 26')
  • 解锁屏幕
代码语言:javascript
复制
# 屏幕从(500,700)滑动到(500,50),延迟200号,毫秒
os.system("adb -s shell input swipe 500 700 500 50 200" )
# 输入密码
os.system('adb shell input text 1111')
  • 关闭和开启屏幕样例
代码语言:javascript
复制
import datetime,os

# 手机电源开关
def power_switch(device='',p_num='0号'):
    hour = datetime.datetime.today().strftime('%H')
    adb_msg = os.popen('adb -s %s shell dumpsys window policy' % device)
    phone_msg = adb_msg.buffer.read().decode(encoding='utf-8')
    # 10:00~21:00,使手机处于亮屏和解锁状态
    if '10' <=hour <= '21':
        if 'mAwake=true' in phone_msg and 'mInputRestricted=false' in phone_msg:
            print('%s手机,亮屏时段,####已亮屏,已解锁####'%p_num)
            logger.info('%s手机,亮屏时段,####已亮屏,已解锁####'%p_num)
        elif 'mAwake=true' in phone_msg:
            print('%s手机,亮屏时段,****已亮屏,执行解锁****'%p_num)
            logger.info('%s手机,亮屏时段,****已亮屏,执行解锁****' % p_num)
            # 屏幕从(500,700)滑动到(500,50),延迟200号,毫秒
            os.system("adb -s %s shell input swipe 500 700 500 50 200" % device)
        else:
            print('%s手机,亮屏时段,====执行亮屏和解锁====' % p_num)
            logger.info('%s手机,亮屏时段,====执行亮屏和解锁====' % p_num)
            os.system("adb -s %s shell input keyevent KEYCODE_POWER" % device)
            # 屏幕从(500,700)滑动到(500,50),延迟200号,毫秒
            os.system("adb -s %s shell input swipe 500 700 500 50 200" % device)
    else:
        # 处于息屏状态
        if 'mAwake=true' in phone_msg:
            print('%s手机,非亮屏时段,====已亮屏,关闭亮屏====' % p_num)
            logger.info('%s手机,非亮屏时段,====已亮屏,关闭亮屏====' % p_num)
            os.system("adb -s %s shell input keyevent KEYCODE_POWER" % device)
        else:
            print('%s手机,非亮屏时段,====未亮屏====' % p_num)
            logger.info('%s手机,非亮屏时段,====未亮屏====' % p_num)
  • 重新启动手机app
代码语言:javascript
复制
mFocusedActivity = os.popen("adb shell dumpsys activity | grep 'mFocusedActivity' | awk '{print $4}' | awk -F '/' '{print $1}'").read().strip('\n')
if mFocusedActivity == 'com.eg.android.AlipayGphone':
    print("APP已启动,停止APP,等待重新启动")
    os.system('adb shell am force-stop com.eg.android.AlipayGphone')
    time.sleep(1)
    print("启动app")
os.system('adb shell am start -n com.eg.android.AlipayGphone/com.eg.android.AlipayGphone.AlipayLogin activity')

以上操作需要adb环境已经搭建好,使用以下命令查看连接设备

代码语言:javascript
复制
C:\Users\enmonster>adb devices
List of devices attached
97dc2d9 device

想获取某个APP名称用于启动时,手机先打开APP,然后执行以下命令

代码语言:javascript
复制
adb shell dumpsys window windows |grep "Current"

参考:https://www.cnblogs.com/Kirito-Asuna-Yoyi/p/Python-ADB1.html https://blog.csdn.net/weixin_40895135/article/details/121487532 https://wenku.baidu.com/view/60353365e75c3b3567ec102de2bd960590c6d9db.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档