一、简介与核心能力
NotifyForward 是一款本地运行的 Android 通知转发工具:把副机的通知、短信、未接来电,实时转发到你手边的设备(Bark / 邮件 / 短信 / Webhook)。隐私优先,不上传你的任何内容,无服务器、无账号。
通知转发
抓取你选定的 App 通知,发到 Bark / 邮件。支持应用过滤(白名单/黑名单),只转你关心的。
短信转发
本机短信转发到指定通道或手机号。双路去重,每条短信恰好转一次。默认关闭。
未接来电
通过通知通道提醒未接来电,无需任何电话/通话权限,连发同文案也分别提醒。默认关闭。
它最适合谁
- 双机党:工作机塞包里,生活机在手上——客户消息、银行验证码、家人未接来电全汇到主手机。
- 备份留存:把重要通知 / 短信转发到邮箱,长期留痕。
- 断网兜底:短信通道无需网络,最后一环也不漏。
二、安装与系统要求
系统要求
- Android 8.0(API 26)及以上(minSdk 26)。
- 目标 / 编译 SDK:36(Android 16),兼容到最新系统。
- 需要联网(Bark / 邮件通道);短信通道走蜂窝网络,无需 Wi-Fi。
安装方式
- Google Play:在 Play 商店搜索
NotifyForward安装(推荐,自动更新)。 - 安装完成后打开应用,进入首次设置流程(含隐私政策同意门禁)。
三、首次权限设置
转发能否稳定工作,取决于三类系统授权。任一缺失都会导致"漏转"。请按顺序完成:
3.0 隐私政策同意门禁(首启)
在一切之前,App 会先展示隐私政策并要求你明确同意。在你接受之前,App 不会转发任何内容,也不会申请任何敏感权限。设置这个门禁,是为了让你在授予任何权限前,先清楚了解 App 可能访问哪些数据、如何处理它们。
3.1 通知使用权(Notification Listener)
- 作用:转发通知、识别未接来电都依赖它。没有它,App 什么都收不到。
- 授予路径:首页若显示「需要权限」红条 → 点「授予权限」→ 在系统"通知使用权"列表里打开 NotifyForward。
- 判断是否已授予:首页状态卡显示绿色「服务运行中」;或 系统设置 → 通知 → 通知使用权 → NotifyForward 已开启。
- 注意:部分品牌机会在"省电 / 清理"时自动收回该权限,需手动重新开启(见 §10 机型排障)。
3.2 短信权限(SEND_SMS / RECEIVE_SMS)
- SEND_SMS:开启「短信」通道(把消息转发到另一个手机号)时必须授予,否则短信发不出去。
- RECEIVE_SMS:开启「包含短信」开关时请求,用于通过系统广播接收短信(双路之一)。
- 授予:首次点开短信通道或开启"包含短信"时会弹窗申请;也可在 系统设置 → 应用 → NotifyForward → 权限 中手动开启。
- 默认关闭 + 说明弹窗:两项短信功能默认都是关闭的。首次开启任一开关时,会弹出一次性说明对话框告知将访问哪些数据并请你确认——在同意前,任何短信数据都不会被转发。
- 说明:未接来电不需要任何电话 / 通话权限,仅靠通知识别。
3.3 电池优化(必须关闭)
- 为什么:Android 的 Doze / 厂商省电会在后台冻结服务,导致实时转发延迟甚至彻底停摆。
- 操作:首页「电池优化」按钮 → 在系统电池设置里把 NotifyForward 设为 "不受限制 / 不允许电池优化"。
- 验证:设置后,锁屏静置 10–30 分钟,让人发一条微信 / 短信,确认仍能收到转发。
四、主界面总览
首页把"是否在工作、转什么、转到哪"集中呈现,方便一眼掌控:
| 区域 | 说明 |
|---|---|
| 状态卡 | 显示「需要权限 / 服务已停止 / 服务运行中」;含通道数、累计转发数、历史数(点历史可查看)。 |
| 转发通道 | Bark / 邮件 / 短信 / Webhook 四个入口,带"已启用 N"标记。 |
| 转发范围 | 事件类型:包含短信(默认关)、包含未接来电(默认关);应用过滤:全部 / 白名单 / 黑名单 + 「管理应用」。 |
| 快捷操作 | 测试转发、通用设置。 |
| 电池优化 | 一键跳转系统电池设置。 |
状态卡、通道、快捷操作、电池优化。
转发范围:事件类型开关 + 应用过滤模式。
五、配置转发通道
每个通道可添加多个目标,各自独立开关。无可用目标时,相关事件类型会被静默丢弃(首页会黄色告警)。
5.1 Bark(向 iPhone / iPad 秒推)
服务器地址
形如 https://api.day.app 或自建地址。必须含 ://,否则无法保存 / 开启。
设备 Key
Bark App 中该设备的 key。完整推送地址 = 服务器地址 / 设备Key。
推送样式
标题自动带 [应用名] 前缀,并按应用分组(group),默认铃声,不再发送 iOS 无法打开的跳转链接。
自建提示:可用 Finb/Bark 自部署,数据完全自控,契合"本地优先"理念。
服务器地址、设备 Key、推送样式。
5.2 邮件(SMTP,跨平台留存)
字段:SMTP 主机、端口、传输安全、发件账号、发件密码、收件人。
传输安全(三选一)
- AUTO(推荐):按端口自动判断——端口
465→ SSL;其他(如 587 / 25)→ STARTTLS。 - SSL:强制 SSL(通常配 465)。
- STARTTLS:强制 STARTTLS(通常配 587)。
| 服务商 | SMTP 主机 | 端口 | 安全 |
|---|---|---|---|
| QQ 邮箱 | smtp.qq.com | 465 / 587 | SSL / STARTTLS |
| 163 邮箱 | smtp.163.com | 465 / 994 | SSL |
| Gmail | smtp.gmail.com | 465 / 587 | SSL / STARTTLS |
| Outlook | smtp.office365.com | 587 | STARTTLS |
- 密码:多数邮箱需使用授权码 / 应用专用密码,而非登录密码(尤其 QQ、163)。
- 连接测试:每个邮件目标提供「测试连接」按钮,会做真实 SMTP 握手 + 登录校验。
SMTP 主机 / 端口、传输安全、发件人、收件人、测试连接。
5.3 短信(SMS,断网兜底)
- 目标手机号(必填):格式
^+?\d{7,20}$,例如+8613800138000或13800138000。 - 双卡过滤(SIM Slot):双卡机可指定只转发某张 SIM 收到的短信;
全部则不区分。卡槽无法确定时一律转发,避免漏消息。 - ⚠️ 费用警告:短信通道每成功发送一条都会按运营商资费计费,可能产生费用,请谨慎开启并确认目标号码。
- 默认关闭:短信通道与「包含短信」默认都是关闭的,需你主动开启并确认说明弹窗后才会生效。
目标手机号与双卡卡槽过滤。
5.4 Webhook(自定义 HTTP 回调)
可转发到任意 HTTP/HTTPS 地址——自建服务、Node-RED、Home Assistant、企业微信/飞书机器人等。每个 Webhook 目标是独立目标,各自带开关。
URL
任意 http:// 或 https:// 地址,手机需能访问;局域网 / 自签名服务可对该目标单独勾选"跳过证书校验"(见下)。
请求方法
POST(默认)发 JSON 体;GET 把相同字段拼到 URL 上。字段完全一致。
Bearer Token(可选)
填写后作为 Authorization: Bearer <token> 发送,经 Android Keystore(AES-256-GCM)加密存储,绝不落明文。
跳过证书校验
仅对单个目标 opt-in(自签名 / 局域网),绝不全局,也不削弱 Bark / 邮件 / 短信。其它通道仍完整校验证书。
JSON 体 / query 字段固定为:eventId、eventType、source、packageName、title、text、timestamp。稳定的 eventId 便于你侧去重。失败自动重试 1 次(共 2 次),随后记入历史。
URL、方法、可选 Bearer Token,以及单目标跳过证书校验。
六、设置转发范围
首页「转发范围」合并区集中管理"转什么"。
6.1 事件类型开关
包含短信
默认关闭。开启(并确认说明弹窗)后,本机收到的短信会被转发(双路去重,见 §8,绝不重复)。
包含未接来电
默认关闭。开启(并确认说明弹窗)后,未接来电走通知转发(无需电话权限)。关闭后未接来电绝不泄漏到普通通知路径。
6.2 应用过滤模式
全部转发(ALL)
所有 App 的通知都转发(噪声较多)。
白名单(WHITELIST)
只转你加入且开启的 App(推荐双机党,半夜不被音乐 / 导航炸)。
黑名单(BLACKLIST)
除你屏蔽的 App 外都转发。
6.3 管理应用
- 点「管理应用」进入 AppFilter 列表,增删条目 / 单条开关。
- 过滤模式本身在主界面切换(AppFilter 页只读展示并提示回主界面改)。
增删 App、单条开关。
七、通用设置(右上角 ⋮)
语言
支持 8 种界面语言,随系统语言自动切换,也可在「通用设置 → 语言」中应用内手动切换:
简体中文繁體中文English日本語한국어EspañolFrançaisالعربية
(阿拉伯语为 RTL,界面自动镜像。)
内容长度上限
- 标题最大长度 与 正文最大长度:各 1–5000,超长截断。
- 作用:保护通道不被超长内容打断,尤其适合转发长网页通知 / 长短信。
关于
显示本应用的简短简介。
语言、内容长度上限、关于(右上角 ⋮)。
八、工作原理与省电机制
一句话原理
NotifyForward 在本地运行一个前台通知监听服务(NotificationListenerService),读取本机通知与短信,由内部调度中枢 ForwardManager 判断后,并发发往你配置的 Bark / 邮件 / 短信 / Webhook 通道,并写入本地历史。没有中间服务器、没有账号。
省电设计
- 后台转发判断全部走内存缓存(总开关 + 设置由 DataStore Flow 驱动,不读磁盘、不解密 Keystore),零 I/O、零解密。
- 应用名走 LRU 缓存(上限 256,避免每条通知查 PackageManager),显著降低 CPU 与耗电。
- 前台服务常驻但极轻量;实测待机增量可忽略。
去重机制
| 类型 | 去重方式 | 说明 |
|---|---|---|
| 普通通知 | 5 秒内容去重窗口 | 同 应用 + 标题 + 正文 5 秒内只转一次(聊天 App 常连发两次)。不同消息各自转发。 |
| 短信 | 消息体去重(双路) | 广播 + 通知两路按消息体签名去重,每条短信恰好转一次。 |
| 未接来电 | 通知 key 去重(30 分钟 TTL) | 按系统通知 key 去重;不同来电即使文案相同也分别转发(已修复"同文案互吞")。重连扫描不会重复转发仍在通知栏的同一通未接。 |
九、历史记录与测试转发
转发记录
每条成功 / 失败的转发都写入本地历史,含来源、标题、正文、各通道结果(成功 / 失败原因)。首页点「历史」卡片可查看;点单条可看详情。
累计转发计数
首页显示总转发条数;点计数旁的重置图标可清零(仅计数,不影响历史)。
测试转发
首页「测试转发」按钮发送一条样例消息,绕过总开关、事件类型与所有过滤器,仅用于验证通道能否收到。若测试能收到而正式转发收不到,说明是过滤 / 识别问题;否则是通道配置问题。
十、机型排障(转发不工作先看这)
国产 ROM 的后台限制是"漏转"的重灾区。按机型对照处理:
OPPO / realme / 一加(ColorOS)
NotifyForward 已修复 ColorOS 拨号未接来电被吞的问题。仍请确保:通知使用权已开 + 电池优化关闭 + 手机管家 → 权限隐私 → 自启动管理 允许 NotifyForward 自启动。
小米(MIUI / HyperOS)
设置 → 省电与电池 → 应用智能省电 → NotifyForward → 无限制;并允许自启动、悬浮窗权限按需开启。
华为 / 荣耀(EMUI / MagicOS)
手机管家 → 应用启动管理 → NotifyForward → 手动管理,允许自启动、关联启动、后台活动;电池优化设为"不允许"。
三星(One UI)
设备维护 → 电池 → 后台使用限制 → 把 NotifyForward 从"深度休眠"列表移除。通知使用权在 设置 → 通知 → 高级设置 → 通知使用权。
通用:服务被系统杀
现象:锁屏一段时间后完全不转发。处理:① 关电池优化;② 允许自启动 / 后台活动;③ 把 App 加入系统"不受限制"列表;④ 部分国产 ROM 需把 App 锁定在最近任务(下拉卡片加锁)。
自上而下排障清单
- 首页状态卡是否为绿色「服务运行中」?→ 否:授予通知使用权 / 点「启动服务」。
- 是否已关闭电池优化?→ 否:首页「电池优化」按钮处理。
- 通道是否已添加且开启?→ 否:去对应通道页添加并打开开关。
- 事件类型开关是否打开(短信 / 未接来电)?→ 二者默认都是关的——若想要这类事件转发,请打开开关并确认说明弹窗。
- 应用过滤是否误杀?→ 白名单模式请确认来源 App 已加入并开启;黑名单请确认未误加。
- 仍无效:用首页「测试转发」验证通道本身能否收到;能收到说明是过滤 / 识别问题,否则是通道配置问题。
十一、常见问题 FAQ
一定要两台手机吗?
不一定。常用于双机党汇聚副机消息;也适合把单台手机通知转发到邮件 / 另一设备做备份。
消息会被上传到服务器吗?
不会。完全本地运行,无服务器无账号。
转发会重复吗?
不会。普通通知 5 秒内容去重;短信双路按消息体去重;未接来电按通知 key 去重(不同来电即使文案相同也分别转发,已修复"同文案互吞")。
为什么收不到未接来电转发?
依次检查:①「包含未接来电」已开(默认是关的,需打开并确认说明弹窗);② 通知使用权已授予;③ 电池优化已关闭;④ 该机型拨号包名是否被识别(见 §10;主流 OEM 已覆盖,并以设备默认拨号应用兜底)。
短信转发要收费吗?
短信通道按运营商资费计费(见 §5.3)。Bark / 邮件走网络,不收费。
能转发微信 / QQ 内容吗?
能,只要开启对应 App 的通知且未被过滤。注意部分聊天内容可能被系统折叠,转发以通知可见文本为准。
更换手机后配置怎么迁移?
配置存于本机 DataStore,未提供云同步。换机需在新机重新配置通道与过滤(建议截图旧机设置)。
Bark 收到的通知带了一串奇怪链接 / 打不开?
App 早先曾附带 iOS 无法打开的跳转链接;来源应用名现在由标题前缀 [应用名] 与分组(group)清晰呈现,不再有多余链接。
为什么短信和未接来电转发默认是关的?
出于隐私保护。短信正文与来电号码属于敏感信息,因此 App 将这两个通道默认关闭,直到你主动开启——且首次开启时会弹出一个简短说明对话框。通知转发(非敏感)是开箱即用的。
十二、隐私与安全
本地优先
无服务器、无账号、无云上传。你的消息只去往你配置的 Bark / 邮件 / 短信 / Webhook 终点。
密钥加密
Bark Key、邮件密码存于 Android Keystore,AES-256-GCM 加密;非 root 设备无法导出明文。
配置私有
转发设置、过滤列表存 DataStore(应用私有沙箱),不收集任何遥测 / 统计。
- 网络出口:仅向你配置的终点发起请求;不收集任何遥测 / 统计。
- 权限最小化:未接来电无需通话权限;短信转发仅用短信相关权限。
- 同意门禁:首启隐私政策门禁 + 短信/未接来电默认关闭,让你始终掌控敏感数据。
- 完整隐私政策见 privacy-policy.html。
十三、附录:权限清单
| 权限 | 用途 | 何时需要 |
|---|---|---|
| 通知使用权(Notification Listener) | 读取通知、识别未接来电 | 始终(核心) |
| RECEIVE_SMS | 接收本机短信(短信转发双路之一) | 开启「包含短信」时(默认关) |
| SEND_SMS | 把消息以短信发出 | 开启「短信」通道时 |
| 网络(INTERNET) | 向 Bark / 邮件发起请求 | 使用 Bark / 邮件通道时 |
| 前台服务(Special Use) | 常驻监听,保证实时转发 | 服务运行期间 |