- 新增「三种回复路径」章节:原生 RemoteInput / 无障碍兼容 / Shizuku(微信) - 新增「应用内更新」章节:自动推送更新通知、ABI 自动匹配、双源下载 - 新增「来电与未接来电」独立章节:来电轮询 + CallLog 反查联系人姓名 - 新增「过滤与噪音控制」完整 17 步流水线 - 新增「构建与体积」(R8 + ABI splits) - 新增「隐私与安全」独立章节 - 强调多通道并行、自动锁回、推送失败先查代理 - 配套链接 docs/notification-reply.md 与 docs/A2iReply-shortcut.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
18 KiB
GotMsg · 有消息
把安卓手机上的系统通知(短信、验证码、来电、微信、QQ、Telegram、企业微信、App 推送等)实时转发到 iPhone、iPad、其它安卓机、鸿蒙机、桌面邮箱,并在接收端直接远程回复原安卓手机。
适用于把安卓备机的消息同步到主力机,不漏验证码、不漏重要聊天、不断网仍能收到关键通知。
一、五分钟上手
1. 安装
从 Releases 下载最新 APK,安装到需要被转发的安卓手机(需 Android 14 / API 34+)。Release 同时提供 universal 全架构包和 arm64-v8a / armeabi-v7a / x86 / x86_64 单架构包,App 内更新页会默认选中与你设备最匹配的版本。
2. 选一个推送通道
推荐三选一:
| 接收设备 | 推荐通道 | 难度 |
|---|---|---|
| iPhone / iPad | Bark | ⭐ 最简单 |
| 安卓手机 | ntfy | ⭐ 推荐开源 |
| 鸿蒙手机 | Meow | 鸿蒙专属 |
| 任何能收邮件的设备 | 电邮 | 桌面/平板可用 |
打开 GotMsg -> 「设置」-> 选对应通道 -> 点右上角 i 按钮 -> 按弹窗步骤配 -> 点该行「发送」测试。可以同时启用多个通道,所有勾选的会并行收到。
3. 授权通知监听
首页会提示「需要授权通知监听」。点击「前往系统授权」,在系统的通知访问设置中开启 GotMsg。
4. 开启转发
首页打开「通知转发」开关。安卓收到通知后按配置自动推送到各通道。发现新版时也会自动把更新通知推给所有已启用的通道,不用进 App 也能升级。
二、推送通道配置详解
每条配置都可独立勾选/删除/排序/测试。点「添加」时建议每条都先「发送」测试一次。
2.1 Bark(iOS / iPadOS)
Bark 是 iOS 上最轻量的推送方案,复制地址即用,推荐所有 iOS 用户首选。
配置步骤:
- iPhone / iPad 上安装 Bark,首次打开允许通知权限。
- 复制 Bark 首页的推送地址,形如
https://api.day.app/你的Key。 - GotMsg「设置 -> Bark 服务器 -> 添加」:
- 名称:随意,例如「我的 iPhone」
- 服务器地址:
https://api.day.app(自建则填自建地址) - Device Key:Bark 地址中
/后面的那段
- 保存后点「发送」测试;iPhone 收到「GotMsg 测试」即成功。
- 多台 iOS 设备:可继续添加多条 Bark 配置,每条独立勾选;列表顺序即推送顺序,可开启「首个成功即止」或全部广播。
为什么推荐 Bark:iOS 上点击 Bark 通知体验最自然;通知附带 GotMsg 回复链接,可从 iPhone 直接回复原安卓;Bark 服务器在中国大陆可直接访问。
2.2 ntfy(Android / iOS / 网页)
ntfy 是开源的 HTTP pub-sub 通知服务,支持 Android、iOS 和网页端,无需注册项目。
配置步骤:
- 接收端安装 ntfy:
- Android:Google Play / F-Droid / GitHub
- iOS:App Store
- 打开 ntfy -> 添加订阅。服务器填
https://ntfy.sh(或自建地址);Topic 用一串随机难猜的名字(如gotmsg_a8f3d2)。 - GotMsg「设置 -> ntfy 转发 -> 添加」:
- 服务器:与接收端完全一致
- Topic:与接收端完全一致
- Token:仅自建服务且启用了鉴权时填
- 保存后点「发送」测试;接收端收到「GotMsg 测试」即成功。
安全提示:公共 topic 谁知道名字就能订阅或发送。Topic 名不要用手机号、姓名、邮箱等可猜信息。
远程回复:GotMsg 在转发聊天类通知时,会自动给 ntfy 通知挂上「View」动作按钮和正文中的回复链接。iOS 上点通知本体只能进 ntfy App,要回复请点动作按钮或正文里的回复链接。
2.3 Meow(鸿蒙 / HarmonyOS)
Meow 是鸿蒙手机的推送接收方案。GotMsg 按你填写的 Meow 接口地址和 Device Key 发出 HTTP 请求即可。
配置步骤:
- 鸿蒙手机上安装 Meow,确认 Meow 自身能正常接收推送。
- 在 Meow 里找到推送接口地址和对应的 Device Key / Token。
- GotMsg「设置 -> Meow 转发 -> 添加」:
- 名称:按鸿蒙设备填写(方便区分多台)
- 服务器地址:Meow 给出的完整 API 地址
- Device Key:Meow 给你的设备 Key(不是鸿蒙锁屏密码、华为账号密码)
- 保存后点「发送」测试;鸿蒙手机收到「GotMsg 测试」即成功。
失败排查:检查 Meow 接口地址是否完整、Key 是否复制完整、鸿蒙手机是否允许 Meow 通知。
2.4 电邮转发
通过 SMTP 把通知发到邮箱(适合无手机接收的场景,如仅在桌面/平板查看)。GotMsg 直连 SMTP,不依赖外部邮件服务。
配置步骤:
- 准备一个 SMTP 邮箱(QQ/163/Gmail/Outlook 都可),开启 SMTP 服务并生成授权码(不是登录密码)。
- QQ:设置 -> 账户 -> POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 -> 开启 SMTP -> 生成授权码
- 163:设置 -> POP3/SMTP/IMAP -> 开启 SMTP -> 设置授权码
- Gmail:账户 -> 安全性 -> 两步验证 -> 应用专用密码
- GotMsg「设置 -> 电邮转发 -> 添加」:
- 服务器(SMTP 主机):
smtp.qq.com/smtp.163.com/smtp.gmail.com等 - 端口:
465(推荐,隐式 SSL) - 账号:完整邮箱地址
- 授权码 / 密码:上一步生成的授权码
- 发件人:通常与账号相同
- 收件人:接收通知的目标邮箱
- 服务器(SMTP 主机):
- 保存后点「发送」测试;收件人收到「GotMsg 测试」即成功。
国内邮箱推荐端口 465(QQ/163 均支持)。Gmail 需要应用专用密码而不是账户密码。
2.5 断网短信兜底
当安卓手机没有网络时,把重要通知(验证码、来电)通过 SIM 卡短信 发到另一台手机(通常是你的 iPhone)。需要安卓卡里还有短信套餐余量。
配置步骤:
- 在 GotMsg「设置 -> 短信兜底」点「授予短信权限」(安卓系统权限)。
- 点「添加」输入目标手机号(如 iPhone 号,接收端是另一台手机,不是 GotMsg 本身)。
- 选运营商:
- 选了「自动识别」:GotMsg 会发免费查询短信给运营商服务号,解析回执获取余量。回执短信本身会被识别并拦截,不转发。
- 选了「手动额度」:在「手动短信额度」填入当前套餐短信条数,每次发短信后自动减 1。
- 当余量 ≤ 5 时自动暂停,下次打开 App 提醒续费。
- 频率限制:每 5 分钟最多发 1 条(避免刷屏),同一条通知 5 分钟内不重复。
适用场景:安卓手机没 WiFi 时,验证码不会丢,漏不了重要登录。
三、通知远程回复(Bark / ntfy)
GotMsg v1.11.0 起,Bark 和 ntfy 转发通知会附带回复入口,接收端在 iPhone 或 Android 上打开回复页输入内容后,回复会经 GotMsg 中继(https://r.gotmsg.pp.ua)送回原 Android 手机。GotMsg 优先使用原通知的 Android RemoteInput 快捷回复能力;微信等没有 RemoteInput 的 App 走无障碍兼容回复;微信 8.0.49+ 进一步屏蔽无障碍时,可启用 Shizuku 路径直接调用 input 命令绕过。
3.1 三种回复路径
| 路径 | 适用 | 是否需要解锁原手机 | 额外授权 |
|---|---|---|---|
| 原生 RemoteInput | 短信、WhatsApp、企业 IM、Telegram 等暴露系统回复动作的 App | 否(后台执行) | 无 |
| 无障碍兼容回复 | QQ、支付宝、淘宝、钉钉 | 是 | 「GotMsg 兼容回复」无障碍服务 |
| Shizuku 兼容回复(仅微信) | 微信(绕过无障碍屏蔽) | 是 | Shizuku 已启动并授予 GotMsg 权限 |
3.2 启用方式
- Bark / ntfy 接收端:无需任何额外配置。GotMsg 自动在通知正文或 ntfy 动作按钮里附上回复链接。
- 原 Android 手机:
- 默认即可使用
RemoteInput(无需任何操作)。 - 想在没有
RemoteInput的 App 上回复,进入「设置 -> 通知回复」打开「无障碍兼容回复」,再到系统无障碍设置里启用「GotMsg 兼容回复」服务。 - 想在最新版微信上回复,启用 Shizuku(在 GitHub Releases 下载并启动),GotMsg 首页会显示 Shizuku 状态卡片;点击「授权 Shizuku」即可。微信路径会自动以 Shizuku 身份模拟
input tap聚焦输入框、写剪贴板、KEYCODE_PASTE注入任意 Unicode,并通过截图像素扫描识别微信绿色发送按钮。
- 默认即可使用
3.3 使用流程
- Bark:通知点击目标会优先变成回复页,正文也会附带回复链接;普通消息不会再跳微信/QQ 等原 App。
- ntfy:通知附带 View 动作按钮和正文中的回复链接;iOS 上点通知本体只进入 ntfy App,请点动作按钮或正文里的回复链接。
完整使用方法与限制见 docs/notification-reply.md。接收端不需要安装 iOS 快捷指令,也不需要订阅额外的 _reply topic(旧版方案已移除,见 docs/A2iReply-shortcut.md)。
链接 10 分钟内有效,只能成功提交一次。原生快捷回复可在后台执行;无障碍 / Shizuku 兼容回复会亮屏并打开原 App;自动解锁仅对无密码滑动锁有效,密码 / PIN / 指纹锁需手动解锁一次;完成后会自动重新锁屏。付款、订单、营销等非聊天通知不能回复。
四、自建推送服务(可选)
所有通道都支持自建,更好、更私密、可控。
4.1 自建 Bark 服务器
GotMsg 默认用 Bark 官方服务器(https://api.day.app),免费够用。自建适合追求完全控制。
Docker 一键部署(推荐):
docker run -d --name bark --restart=unless-stopped \
-p 8080:8080 \
-v /var/lib/bark:/data \
finab/bark-server
然后用 Nginx Proxy Manager 加 HTTPS 域名。详细三种方案对比请看 Bark 官方文档。
GotMsg 配置:服务器地址填 https://你的域名.com(不要 /push 后缀),Device Key 填你在自建 Bark 上创建的 Key。
4.2 自建 ntfy 服务器
ntfy 是为自建设计的,比 Bark 还简单——官方直接提供 Docker 一行启动:
docker run -d --name ntfy --restart=unless-stopped \
-p 80:80 \
-v /var/lib/ntfy:/var/lib/ntfy \
binwiederhier/ntfy serve
推荐加 Nginx 反代上 HTTPS 域名。完整文档:docs.ntfy.sh。
GotMsg 配置:服务器地址填 https://ntfy.你的域名.com,Topic 照旧。
4.3 自建 Meow 服务器
Meow 是鸿蒙客户端,服务端一般用 Meow 自带的。GotMsg 端无需配置服务端,只需填 Meow 给你的接口地址 + Key。
五、应用内更新
GotMsg 内置更新检测:定期拉取 Gitea + GitHub Releases,发现新版时自动向所有已启用通道推送一条更新通知(带当前版本号、目标版本号、变更摘要、APK 大小)。首页显示醒目横幅,可选「立即下载」或「忽略此版本」。
下载页会默认选中匹配你设备 ABI 的 APK(universal / arm64-v8a / armeabi-v7a / x86_64 / x86),也可手动切换架构;下载完成后通过 FileProvider 调起系统安装器。
Gitea 源为主(国内可达),GitHub 为兜底;主源下载失败会自动尝试另一个源的同版本链接。
取消自动检查:在「设置 -> 应用内更新」关闭「更新检查」即可,手动检查仍可用。
六、来电与未接来电
MIUI / HyperOS 不向第三方监听器分发系统电话通知。GotMsg 通过 轮询 TelephonyManager.getCallState() 绕过此限制:
- 来电:构造「有电话进来」推送(Android 14+ 禁止第三方读取实时号码);如无障碍服务读到号码则展示真实号码。
- 未接来电:通话结束后查系统
CallLog获取号码,并通过ContactsContract.PhoneLookup反查联系人姓名,推送形如「张三\n138xxxx」。
需要在系统设置中授予「电话」权限(设置 -> 应用 -> GotMsg -> 权限 -> 电话)。
七、过滤与噪音控制
通知处理流水线(在 NotificationProcessor 中按顺序执行):
- 全局开关
- 持续性通知(ongoing)静默
- VPN / 代理客户端(Surfboard、Clash Meta、Clash for Android、v2rayNG、小米设备互联)常驻通知静默
- 米家「设备状态」泛化通知静默(门锁 / 告警等具体事件仍正常转发)
- App 黑/白名单
- 空内容 / 脱敏内容
- 噪音包名(三星剪贴板 / 键盘、GMS、SystemUI、Google 输入法)
- 系统状态消息("正在运行"等)
- 泛化无意义通知(标题「新消息」+ 正文「你有一条新消息」等占位文案)静默
- 近空内容(纯符号 / 纯空格 / 仅 App 名)
- 广告过滤(内置营销关键词 + 用户自定义关键词)
- 已发短信(仅收不发)
- 运营商余额回执拦截(解析余量后不转发)
- 去重检查(5 秒窗口)
- 验证码提取(关键词 + 数字 / 数字 + 关键词 / 纯数字 4–8 位)
- 特殊 App 解析(微信 / QQ / Telegram 优化 + 重要消息关键词标记)
- 构造 BarkMessage 并推送
验证码开启自动复制后会被复制到剪贴板;推送级别在重要消息上自动提升到 timeSensitive 以点亮 iOS 焦点通知。
八、使用建议
- 只想收验证码:进入「过滤」页,开启「验证码自动提取」和「广告过滤」;再到「应用」页切到白名单模式,只勾选短信类 App。
- 想同步聊天:保持黑名单模式(默认),在「过滤」页开启「微信 / QQ / Telegram 优化」。
- 通知没推过来:先看「日志」页,每条通知(无论转发、过滤还是失败)都会记录原因。失败会自动加入 pending 队列,由 WorkManager 每 15 分钟重发。
- 想让通知带图标:见下方「应用图标」一节。
- 电话通知不工作:MIUI 不向第三方监听器分发系统电话通知,GotMsg 通过轮询
getCallState()绕过此限制。需授予「电话」权限。 - 断网收不到通知:开启「设置 -> 短信兜底」并填好 iPhone 号码、授予短信权限。断网时验证码和来电走短信(消耗套餐额度,5 分钟限 1 条)。
- 想全平台通知:可同时启用多个通道(每个通道的多个条目独立勾选),所有启用的会同时收到。
- 推送报 connection closed:通常不是被墙,而是手机上的代理 / VPN 客户端干扰 Bark 服务器连接;先关代理或换自建 Bark 验证。
九、应用图标
Bark 和 ntfy 的通知 icon 字段需要公网可访问的图片 URL。GotMsg 支持把已安装 App 的图标批量导出,方便上传到你自己的图床。
规则:转发时 icon = 图标 URL 前缀 + 安卓包名 + .png。在「设置 -> 应用图标」里:
- 填写图标 URL 前缀,例如
https://你的图床域名/icons/。 - 选择一个目录,点「导出图标」,把该目录下所有 App 的图标以
包名.png形式导出。 - 把导出的图片上传到你的图床对应目录。
留空前缀则不显示图标。
十、构建与体积
Release 构建开启 R8 + 资源压缩,universal APK 约 5 MB;同时输出 ABI splits,每个架构单独的 APK 体积更小。
构建:
export JAVA_HOME="D:/Dev/JDK-17" ANDROID_HOME="D:/Dev/Android/SDK"
./gradlew assembleRelease
# 产物:app/build/outputs/apk/release/app-universal-release.apk
# app/build/outputs/apk/release/app-arm64-v8a-release.apk
# app/build/outputs/apk/release/app-armeabi-v7a-release.apk
# app/build/outputs/apk/release/app-x86-release.apk
# app/build/outputs/apk/release/app-x86_64-release.apk
release 复用 debug 签名配置(signingConfigs.getByName("debug")),适合个人发布到 GitHub / Gitea Release;正式商店上架前需替换为独立的 release keystore。
十一、界面截图
| 首页 | 应用管理 | 过滤设置 |
|---|---|---|
![]() |
![]() |
![]() |
| 设置 | 转发日志 |
|---|---|
![]() |
![]() |
十二、隐私与安全
- GotMsg 不收集任何遥测到第三方;本地仅记录最少必要的设备 ID / 密钥(用于回复中继鉴权,256 位随机,备份规则明确排除)。
- 回复中继
https://r.gotmsg.pp.ua只持久化设备密钥 + 回复令牌的 SHA-256 哈希,正文 24 小时后清除;回复链接放在 URL fragment 中,不会进入服务器访问日志。 - 拿到回复链接的人可在 10 分钟有效期内提交一次回复,因此不要转发或公开该链接。
- 无障碍 / Shizuku 兼容回复仅在收到有效的一次性回复事件时运行,严格校验目标包名;Shizuku 路径只点击经像素扫描确认的微信绿色发送按钮,避免误操作。
License
本项目仅供个人使用。自 v1.10.2 起闭源。
All Rights Reserved. 保留所有权利。





