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("这是一条自动发送的测试消息")
关键点说明:
- 需要先用
weditor工具查看微信的UI控件ID,不同微信版本可能不同 - 如果给自己发消息,可以把
contact_name改为你的微信昵称 - 首次运行需要授权USB调试权限
替代方案: 如果只是发文本,也可以用ADB命令模拟点击:
import subprocess
# 更简单的ADB命令方式(需要知道具体坐标)
subprocess.run(['adb', 'shell', 'input', 'text', 'Hello'])
一句话建议: 先用weditor查看微信的UI结构再写定位代码。
这个项目现在还可以用吗?
用 adb 模拟点击自己写一个?
可以,别说发消息,发圈发语音都 ok 的

