当前位置: 首页 > news >正文

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

  • 唤醒屏幕操作
os.system("adb shell input keyevent KEYCODE_POWER")
or
os.system('adb shell input keyevent 26')

  • 解锁屏幕
# 屏幕从(500,700)滑动到(500,50),延迟200号,毫秒
os.system("adb -s shell input swipe 500 700 500 50 200" )
# 输入密码
os.system('adb shell input text 1111')
  • 关闭和开启屏幕样例
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
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环境已经搭建好,使用以下命令查看连接设备

C:\Users\enmonster>adb devices
List of devices attached
97dc2d9 device

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

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

相关文章:

  • OPENSSH PRIVATE 转换 RSA PRIVATE 以及区别
  • 计算机毕业设计ssm体育赛事信息平台dmlva系统+程序+源码+lw+远程部署
  • 网课查题公众号接口调用详细教程
  • 计算机毕业设计ssm通识教育教学系统ekzep系统+程序+源码+lw+远程部署
  • 网课查题接口对接教程
  • 网课答案搜题接口对接教程
  • 计算机毕业设计ssm桐梓娄山书店管理系统6k3s6系统+程序+源码+lw+远程部署
  • c c++源文件依赖关系分析工具
  • yolo系列之yolov4(4)
  • JavaFX、聊天程序
  • SVO2.0
  • WebWall-09.Unsafe file uploads(不安全的文件上传)
  • Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境
  • HTML5 day_01(8.5)
  • 跑路了,去东北国企干软件测试一个月的感触
  • php的引用
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Android单元测试 - 几个重要问题
  • JavaScript新鲜事·第5期
  • Linux中的硬链接与软链接
  • Material Design
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Spring Cloud Feign的两种使用姿势
  • Spring核心 Bean的高级装配
  • 从0到1:PostCSS 插件开发最佳实践
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 解决iview多表头动态更改列元素发生的错误
  • 开发基于以太坊智能合约的DApp
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 扑朔迷离的属性和特性【彻底弄清】
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 如何进阶一名有竞争力的程序员?
  • 试着探索高并发下的系统架构面貌
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #在 README.md 中生成项目目录结构
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (2)STM32单片机上位机
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (30)数组元素和与数字和的绝对差
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)fgets与fputs函数详解
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (第61天)多租户架构(CDB/PDB)
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (汇总)os模块以及shutil模块对文件的操作
  • (十一)c52学习之旅-动态数码管
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)shell调试方法
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .net 按比例显示图片的缩略图
  • .NET牛人应该知道些什么(2):中级.NET开发人员