如何把一台安卓手机变成企业微信无人值守机器人:WorkTool 安装配置教程

如何把一台安卓手机变成企业微信无人值守机器人:WorkTool 安装配置教程

【免费下载链接】worktool一款安全稳定的Android无障碍服务工具,支持控制企微/微信来运行的无人值守群管理企业微信机器人项目地址: https://gitcode.com/GitHub_Trending/wo/worktool

WorkTool 是一款基于 Android 官方无障碍服务的企业微信自动化机器人工具,它让一台普通安卓手机变成"机器人身体":你不需要人守在屏幕前,后台即可驱动这台手机自动收发消息、@提醒、发文件、建群拉人、踢人、通过好友请求,实现企微/微信群的无人值守管理。全程无需 Root,普通手机即可运行,官方声明兼容 99% 的安卓机型。

从"夜里没人回群"说起:手机机器人能替你做哪些活

想象这样一个场景:你负责一个几百人的客户群,白天要答疑、晚上要发日报、新成员进群要拉人、文件要挨个转发,@你的消息还得第一时间回复。人工盯群不仅累,还经常漏消息。

WorkTool 的思路很直接:把一部已登录企业微信的手机交给程序接管。它分为两部分:

  • 安卓端 APP:装在这部"机器人手机"上,通过系统无障碍服务识别并操作企业微信界面;
  • 任务调度平台:你在后台下发指令(对应源码中的消息类型编码),手机端收到后自动执行,并把执行结果回调给你。

源码里 WeworkMessageBean.java 定义了全部指令类型,200 段是操作类(发消息 203、回复 204、建群 206、推送文件 218……),500 段是数据获取类(获取群信息 501、最近聊天列表 505……),整个机器人的能力边界都在这一个文件里,读一遍就能建立完整印象。

下面是 WorkTool 机器人在真实群聊中自动答疑的效果截图:

10 分钟内完成安装与首次配置

1. 准备一台"机器人手机"

  • 任意安卓手机(能正常安装、登录企业微信即可);
  • 开源历史版本兼容的企业微信版本见 Constant.kt 中的AVAILABLE_VERSION常量,覆盖 4.0.2 至 4.1.10 共 17 个版本;README 说明商业版持续适配更新版本。

2. 安装 WorkTool APP

方式一,源码编译(适合开发者,用于测试和学习):

git clone https://gitcode.com/GitHub_Trending/wo/worktool cd worktool ./gradlew assembleDebug

编译产物在app/build/outputs/apk/下,安装到手机即可。方式二,直接使用官方打包好的 APK 安装包(README 中提供下载地址,注意开源仓库提供的是历史版本,生产环境建议用持续维护的商业版)。

3. 开启三个关键权限

对照 AndroidManifest.xml 声明的权限,实际要手动开的主要是这三个:

  1. 无障碍服务(核心权限):进入系统"设置 → 无障碍/辅助功能",开启 WorkTool 的无障碍服务,对应服务类WeworkService,它是 APP 操作企业微信界面的唯一通道;
  2. 悬浮窗权限(SYSTEM_ALERT_WINDOW):用于显示运行状态和快捷操作按钮,发文件等操作会先检测该权限;
  3. 存储权限:读取和发送本地文件时需要。

4. 确认企业微信已登录

企业微信必须处于登录状态,机器人才能识别消息和界面。特别注意:如果企业微信停在登录页,WorkTool 会主动提示"登录前请先关闭 WorkTool 主功能"——这是保护账号的正常逻辑,按提示操作即可。

完成以上步骤后,开启 APP 主功能,机器人即进入待命状态,等待后台下发指令。

四个高频场景:从发消息到管群

场景一:向指定群或单聊发消息,支持真 @

核心方法是 WeworkOperationImpl.kt 中的sendMessage():

// at 指定一个人,atList 可指定多人 sendMessage(message, titleList, "日报已生成,请查收", at = "张三", atList = listOf("李四", "王五"))

titleList是群名/联系人名的列表,方法内部会逐个进入对应会话发送;发送结果会区分successList和failList回调,失败时会自动再重试进入房间一次。

场景二:自动回复并带上"引用原消息"

replyMessage()会先根据原消息的发送者姓名和内容在聊天记录里定位到那条消息,长按选择"回复/引用"后再发送;如果定位失败,会自动降级为"【原内容】\n你的回答"的形式直接发送,保证回复不丢。这就是上面截图里机器人能准确接话的底层逻辑。

场景三:自动推送文件、微盘内容、小程序

pushFile()支持把网络文件自动下载到手机再分享发送:

pushFile(message, titleList, objectName = "季度报告.pdf", fileUrl = "https://example.com/file.pdf", fileBase64 = null, fileType = "application/pdf")

除了普通文件,指令表里还覆盖微盘文件(PUSH_MICRO_DISK_FILE)、小程序(PUSH_MICROPROGRAM)、腾讯文档(PUSH_OFFICE)、链接(PUSH_LINK)等,配合 500 段的GET_LOCAL_FILE还能反向取回手机本地文件。

场景四:建群、拉人踢人、处理好友请求

群管理是一组独立指令:INIT_GROUP(206)创建群并拉人、UPDATE_GROUP(207)改群名/群公告/群模板、DISMISS_GROUP(219)解散群、removeList字段配合实现踢人;好友侧有PASS_ALL_FRIEND_REQUEST(212)一键通过所有好友请求、ADD_FRIEND_BY_PHONE(213)按手机号加好友、ADD_FRIEND_BY_GROUP(220)从外部群捞人。此外历史版本还陆续支持自动通过群邀请、群二维码回调、防卡顿模式等能力,具体可翻 README 末尾的开源版更新记录。

这三个坑最容易踩,排查思路直接给你

坑一:无障碍服务开了,机器人却不动

  • 现象:权限都开了,后台下发指令没反应;
  • 原因:多数是 APP 主功能没启动,或企业微信没登录(停在登录页时程序会主动提示并让位);
  • 解决:确认企业微信处于已登录状态、开启 WorkTool 主功能;仍无反应时检查企业微信版本是否在AVAILABLE_VERSION兼容列表内。

坑二:发文件总是失败

  • 现象:pushFile调用返回失败,日志提示"未打开悬浮窗权限";
  • 原因:推文件依赖系统分享面板,pushFile()开头会先检测悬浮窗权限,没开就直接返回错误(源码WeworkOperationImpl.kt第 737 行);
  • 解决:到系统设置里授予"显示在其他应用上层"权限后重试。

坑三:消息发不进目标群,或 @ 不生效

  • 现象:回调里出现"发送失败 进入房间失败",或 @ 变成了普通文字;
  • 原因:群名/联系人名称与实际不符导致进房间失败;@ 的昵称必须与群成员显示昵称一致;
  • 解决:核对titleList传入的名称与群聊列表中显示的名称逐字一致;at/atList传群里实际看到的昵称。发送结果是按群名区分成功/失败列表回调的,先看回调里的failList就能定位是哪个会话出了问题。

另外提醒一点:WorkTool 通过识别界面控件实现自动化,企业微信大版本升级后控件可能变化,开源版维护到企微 4.1.10,生产使用请确认所用版本仍在兼容列表内。

结语:今晚就让你的群"自己转起来"

从克隆仓库、开启无障碍服务到第一条自动回复发出,顺利的话半小时之内就能跑通。建议从最简单的"关键词自动回复"场景开始,再逐步接入文件推送和群管理。最后务必记住 README 的风险提示:本工具基于官方无障碍服务实现,但请只用于合法合规的业务场景,账号曾有封禁记录的不要使用——机器人是省力的工具,不是违规的借口。

【免费下载链接】worktool一款安全稳定的Android无障碍服务工具,支持控制企微/微信来运行的无人值守群管理企业微信机器人项目地址: https://gitcode.com/GitHub_Trending/wo/worktool

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OpenMontage 的 BFL Webhook 集成指南:FLUX 图像生成如何用事件驱动回调替代轮询

OpenMontage 的 BFL Webhook 集成指南:FLUX 图像生成如何用事件驱动回调替代轮询

OpenMontage 的 BFL Webhook 集成指南:FLUX 图像生成如何用事件驱动回调替代轮询 【免费下载链接】OpenMontage Worlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files…

2026/10/21 1:16:56 阅读更多 →
Golang 字符串字面量表示方法

Golang 字符串字面量表示方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:16:56 阅读更多 →
ESP-Drone 上手指南:基于 ESP32 的四旋翼飞控固件如何工作、如何上手

ESP-Drone 上手指南:基于 ESP32 的四旋翼飞控固件如何工作、如何上手

ESP-Drone 上手指南:基于 ESP32 的四旋翼飞控固件如何工作、如何上手 【免费下载链接】esp-drone Mini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs. 项目地址: https://gitcode.com/GitHub_Trending/es/esp-drone ESP-Drone 是乐鑫推出的…

2026/10/21 1:15:56 阅读更多 →

最新新闻

解锁 Unity 全部专业功能:UniHacker 跨平台修补原理与操作指南

解锁 Unity 全部专业功能:UniHacker 跨平台修补原理与操作指南

解锁 Unity 全部专业功能:UniHacker 跨平台修补原理与操作指南 【免费下载链接】UniHacker 为Windows、MacOS、Linux和Docker修补所有版本的Unity3D和UnityHub 项目地址: https://gitcode.com/GitHub_Trending/un/UniHacker UniHacker 是一个跨平台 Unity 解…

2026/10/21 1:57:37 阅读更多 →
校园一卡通系统架构设计与落地实践:从单体到设备接入网关的完整方案

校园一卡通系统架构设计与落地实践:从单体到设备接入网关的完整方案

1. 项目从需求到架构的思考路径1.1 一卡通系统到底解决了什么问题很多人觉得校园一卡通就是把食堂饭卡挪到网上,其实远没这么简单。学校里的消费、门禁、图书借阅、上机考勤、宿舍电控这些场景,以前是各用各的卡,各建各的库,财务对…

2026/10/21 1:57:37 阅读更多 →
Qt大图预览不掉帧:用QOpenGLWidget显示QImage的工程模板

Qt大图预览不掉帧:用QOpenGLWidget显示QImage的工程模板

简介:一套基于Qt框架的QOpenGLWidget图像显示示例工程,面向需要掌握OpenGL纹理映射与矩阵变换的中级Qt开发者。资源聚焦如何将QImage像素数据上传为GPU纹理,并通过变换矩阵实现缩放、旋转、平移等交互功能,适用于图像查看器、简易…

2026/10/21 1:57:37 阅读更多 →
SpringBoot重构校园交流墙:从设计到部署全解析

SpringBoot重构校园交流墙:从设计到部署全解析

我在某高校接过一个类似的校园墙系统,从需求调研到最后部署上线,前后折腾了小两个月。那段时间最大的感悟是:校园交流墙这类产品,功能看着简单,但真正落地时要踩的坑特别多——匿名身份怎么处理、内容审核怎么搞、高并…

2026/10/21 1:57:37 阅读更多 →
显示驱动板卡启动引导流程全解析:从电源时序到面板点亮

显示驱动板卡启动引导流程全解析:从电源时序到面板点亮

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:57:37 阅读更多 →
JumpServer 堡垒机一键部署:运维安全审计系统搭建

JumpServer 堡垒机一键部署:运维安全审计系统搭建

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 1:56:36 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →