Python中如何控制Android上的微信实现自动给自己发消息

闲置 android 想用脚本控制 android 调用微信给自己发消息,求问能自行实现吗,有何可用的工具?


Python中如何控制Android上的微信实现自动给自己发消息
6 回复

这个需求涉及Android自动化,可以用uiautomator2库来实现。核心思路是:连接Android设备 -> 启动微信 -> 定位“文件传输助手”或自己的聊天窗口 -> 输入并发送消息。

首先安装必要的库:

pip install uiautomator2 weditor

然后初始化设备连接(确保USB调试已开启):

import uiautomator2 as u2

# 通过设备序列号连接(adb devices查看)
d = u2.connect('your_device_serial')
# 或自动连接第一个设备
# d = u2.connect()

完整的自动发消息脚本:

import uiautomator2 as u2
import time

def send_wechat_message_to_self(message, contact_name="文件传输助手"):
    # 连接设备
    d = u2.connect()
    
    # 启动微信(如果未运行)
    d.app_start("com.tencent.mm")
    time.sleep(3)  # 等待启动
    
    # 点击搜索框
    search_btn = d(resourceId="com.tencent.mm:id/f8y")
    if search_btn.exists:
        search_btn.click()
        time.sleep(1)
        
        # 输入联系人名称
        d.send_keys(contact_name)
        time.sleep(2)
        
        # 点击搜索结果中的联系人
        contact = d(text=contact_name)
        if contact.exists:
            contact.click()
            time.sleep(2)
            
            # 定位输入框并输入消息
            input_box = d(resourceId="com.tencent.mm:id/bhn")
            if input_box.exists:
                input_box.click()
                input_box.send_keys(message)
                
                # 点击发送按钮
                send_btn = d(resourceId="com.tencent.mm:id/bhq")
                if send_btn.exists:
                    send_btn.click()
                    print(f"消息发送成功: {message}")
                else:
                    print("未找到发送按钮")
            else:
                print("未找到输入框")
        else:
            print(f"未找到联系人: {contact_name}")
    else:
        print("未找到搜索按钮")
    
    # 返回桌面(可选)
    d.press("home")

# 使用示例
if __name__ == "__main__":
    send_wechat_message_to_self("这是一条自动发送的测试消息")

关键点说明:

  1. 需要先用weditor工具查看微信的UI控件ID,不同微信版本可能不同
  2. 如果给自己发消息,可以把contact_name改为你的微信昵称
  3. 首次运行需要授权USB调试权限

替代方案: 如果只是发文本,也可以用ADB命令模拟点击:

import subprocess

# 更简单的ADB命令方式(需要知道具体坐标)
subprocess.run(['adb', 'shell', 'input', 'text', 'Hello'])

一句话建议: 先用weditor查看微信的UI结构再写定位代码。

这个项目现在还可以用吗?

用 adb 模拟点击自己写一个?

可以,别说发消息,发圈发语音都 ok 的

回到顶部