案例
项目概述
DotzLink 是一套通知监控平台:Android 应用捕获设备上的通知,过滤掉无关内容,将其余部分发送至后端进行分类,再把真正值得关注的事件推送回用户。
这个问题的难点在 Android 侧而非模型侧。读取通知需要一项用户必须自行在系统设置中授予的特殊权限,后台进程还要在各厂商差异极大的省电策略下存活。一个几小时后就被系统杀掉的事件监控应用,实际上什么也监控不到。
AI 分类由后端完成;Android 客户端对接该服务,并不在设备上训练或运行模型。
案例
实施范围
- 原生 Android 应用
- 系统 Notification Listener 集成
- 用户权限引导流程
- 后台服务与通知实时捕获
- 发送前的本机过滤
- 与 AI 分类后端的 API 对接
- 推送通知
- 用于查看事件的网页界面
参与角色
承担工作
Android Developer / Software Engineer
- 原生 Android 应用开发
- Notification Listener 集成与权限引导流程
- 后台处理与通知实时捕获
- 过滤逻辑实现
- 与 AI 分类后端的 API 对接
- 重要事件的推送通知
- 测试与生产环境稳定性处理
案例
核心功能
通知实时捕获
应用向系统 Notification Listener 注册,在通知出现时即刻接收事件,而非轮询查询。
发送前过滤
手机上的通知大多是噪音。过滤放在设备端进行,以减少传输量与分类环节的处理压力。
经后端的 AI 分类
过滤后的通知发送至后端进行分类。客户端通过 API 对接该服务——设备上不运行也不训练模型。
权限引导
通知读取权限必须由用户在系统设置中开启。应用逐步引导并持续复查权限状态,因为该权限随时可能被关闭。
后台稳定性
对后台服务做了处理,使其能在各厂商不同的省电策略下存活——这是整个应用中最耗时的部分。
应用与网页端
事件同时呈现在应用与网页界面中,便于在大屏幕上回看而不必拿起手机。
架构与技术
技术难点
通知读取权限
这是一项敏感权限,无法通过普通弹窗授予,须经系统设置开启且可被再次关闭。应用必须清晰引导并持续复查状态。
保持后台进程存活
各 Android 厂商的电量管理方式不同,且很容易终止后台进程。保证服务持续运行是最难的部分,需在多品牌真机上测试。
数据量与噪音
单台设备一天可能产生大量通知。若不在设备端过滤,传输链路与分类环节的大部分工作都会消耗在噪音上。
隐私
通知内容属于个人数据。所遵循的原则是只处理分类所必需的部分——本页不包含任何用户通知内容。
案例
成果
- Android 应用实现通知的实时捕获与过滤
- 事件经 AI 后端分类后推送回用户
- 后台服务在不同厂商省电策略下稳定运行
- 事件可在应用与网页界面两处查看
案例
项目图片
Android 应用 网页端界面
服务
