python+adb的零碎记录

相机

不存在 "触发拍照行为" 的通用系统 Action,只能通过 "打开相机 + 模拟操作" 实现自动化拍照。

1、打开相机

-a android.media.action.IMAGE_CAPTURE,通用动作

-n 包名/activity名

2、快速实现用ADB 模拟点击(坐标),适配多设备用uiautomator2(控件识别);

python 复制代码
from ppadb.client import Client as AdbClient
import uiautomator2 as u2
import time

def adb_connect():
    adb_client = AdbClient(host="127.0.0.1", port=5037)
    
    try:
        devices = adb_client.devices()
    except Exception as e:
        raise Exception(f"ADB连接失败:{str(e)},请检查ADB服务是否启动")
    if not devices:
        raise Exception("未检测到安卓设备,请检查:\n1. USB连接是否正常\n2. 开发者模式/USB调试是否开启\n3. 设备是否授权此电脑")
    
    return adb_client, devices[0]

def open_camera(device):
    device.shell(f"am start -n org.codeaurora.snapcam/com.android.camera.CameraLauncher")
    print('打开相机')
    time.sleep(3)

# 方法1:拍照按钮坐标
def position(device):
    tap_x,tap_y=542,2320
    device.shell(f'input tap {tap_x} {tap_y}')
    time.sleep(3)
    print('通过坐标拍照')
    
# 方法2:拍照按钮控件
def resource():
    d=u2.connect()
    try:
        d(resourceId="org.codeaurora.snapcam:id/shutter_button").click()
    except Exception as e:
        raise Exception('未找到指定id的按钮,无法拍照')
    time.sleep(3)
    print('通过控件拍照')
    
adb_client, device=adb_connect()
open_camera(device)
position(device)
resource()
相关推荐
Raas1006 分钟前
AI网关和OpenRouter区别?MAI Gateway(魔芋企业级AI网关)企业级方案对比指南
大数据·开发语言·人工智能·gateway·php·ai网关·mai gateway
2601_962293248 小时前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
点心的游戏开发世界8 小时前
GDScript 入门笔记(十一):Lambda 与匿名函数
开发语言·笔记·游戏引擎·godot
91刘仁德9 小时前
MYSQL 事务原理及使用
android·mysql·adb
2601_962293799 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
事圆则缓10 小时前
Kotlin 协程完全指南
开发语言·kotlin
我爱写代码i10 小时前
BeLink - 支持生成多种URL 缩短网址PHP源码
开发语言·php·短网址php源码
Java后端的Ai之路10 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
2601_9620777111 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
JavaPub-rodert11 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain