2401_84109401 2024-04-05 16:31 采纳率: 0%
浏览 79
已结题

通过电脑adb连接安卓手机,实现模拟点击

电脑设置一个UI界面,里面有4个按钮,通过点击按钮,实现模拟点击4台手机指定位置若干次(UI界面的一个按钮对应点击4台手机的同一个位置,4个UI按钮意味着4个位置)。
例如:点击电脑界面的#4按钮,指令0延迟通过USB线传达4台手机,执行指令是:手机1、2、3分别点击3次位置4,手机4点击5次位置4,4台手机点击频率都是50毫秒/次。
4台手机品牌型号完全一样。

主要是时间间隔。
如何做到电脑到手机0延时?如何做到点击间隔时间50毫秒?

  • 写回答

19条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-05 16:31
    关注

    引自免费微信小程序:皆我百晓生

    为了解决您的问题,您可以通过编写Python程序结合adb工具来实现模拟点击安卓手机指定位置的功能。以下是详细的解决方案步骤以及所需代码:

    1. 安装依赖

    确保已安装以下库:

    • pyautogui 用于在电脑界面上模拟鼠标点击
    • adb 工具并将其添加到系统环境变量,以便在命令行中调用

    安装方法(在终端或命令提示符中执行):

    pip install pyautogui
    

    2. 设计电脑端界面

    您可以使用tkinter库创建一个简单的GUI窗口,包含若干按钮。每个按钮对应不同的点击次数和间隔。以下是一个示例代码:

    import tkinter as tk
    
    def handle_click(button_id):
        # 在这里根据button_id调用对应的模拟点击手机功能
        ...
    
    def create_button(parent, button_id, text):
        button = tk.Button(parent, text=text, command=lambda: handle_click(button_id))
        button.pack()
    
    root = tk.Tk()
    create_button(root, 4, "#4 (Click 4 times)")
    # 添加其他按钮...
    root.mainloop()
    

    3. 编写模拟点击手机函数

    利用subprocess库运行adb shell input tap命令以模拟点击手机屏幕。下面是一个示例函数:

    import subprocess
    import time
    
    def simulate_phone_clicks(x, y, clicks, interval_ms=50):
        for _ in range(clicks):
            subprocess.run(["adb", "shell", f"input tap {x} {y}"])
            time.sleep(interval_ms / 1000)  # 等待指定间隔时间
    
    # 使用示例
    simulate_phone_clicks(100, 200, 4, 50)
    

    4. 整合电脑端按钮与模拟点击功能

    将第2步中的handle_click函数与第3步中的simulate_phone_clicks函数关联起来。根据您的需求,可以定义一个字典来存储每个按钮ID对应的点击次数和坐标信息:

    click_config = {
        4: {"x": 100, "y": 200, "clicks": 4},
        # 添加其他按钮配置...
    }
    
    def handle_click(button_id):
        config = click_config.get(button_id)
        if config:
            simulate_phone_clicks(config["x"], config["y"], config["clicks"])
    
    # 更新GUI代码中的handle_click调用
    def create_button(parent, button_id, text):
        ...
    

    至此,您已经完成了一个具备模拟点击安卓手机功能的Python程序。当用户在电脑界面上点击相应按钮时,程序会通过ADB向手机发送模拟点击指令,并按照预设的次数和间隔执行点击操作。如果您需要进一步调整或扩展功能,可以根据上述代码进行修改。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月8日
  • 修改了问题 4月5日
  • 修改了问题 4月5日
  • 赞助了问题酬金15元 4月5日
  • 展开全部