Skip to content
Fq77Public

About

码达 toCode — 通知栏监听式快递取件码 Android 应用(Kotlin + Jetpack Compose + AGSL 液态玻璃)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

码达 toCode

toCode — 让取件码自己走进手机 · 通知栏监听式快递取件码 Android 应用

Kotlin Android Compose License


这是什么

每个网购过的人都被快递通知折磨过:短信被淹没,取件时翻聊天记录,取完件还要手动删通知。

码达 toCode 监听系统通知栏:所有快递通知(短信、菜鸟、丰巢、快递 100 等发到通知栏的消息)都会经过它的识别引擎,取件码、快递公司、取件地点被自动提取、结构化入库。通知不该被复制粘贴,应该被"收走"。

✨ 特性

  • 🎯 全自动捕获 — 无需复制粘贴,通知到达即提取,取件完成一键归档
  • 🔍 混合识别引擎 — 关键词初筛 + 三级正则(前缀词 / 分段数字 / 数字兜底)+ 可选 AI 兜底,严格排除运单号、日期、金额、门牌号误判
  • 🏢 21 家快递公司识别 + 取件地点解析(驿站 / 快递柜 / 代收点)
  • 🗂 待取 / 已完成 双列表管理,同码智能合并,全局搜索,批量操作
  • 💎 液态玻璃视觉 — AGSL SDF 边缘光、渐进模糊顶栏、液态底栏,内置 Full / Degraded / Fallback 三级性能降级
  • 🔐 本地优先 — 无账号无云端;AI Key 经 AndroidKeyStore + AES/GCM 加密存储
  • 🧪 6 组单元测试 覆盖识别引擎与数据层

🛠 技术栈

分类 技术
语言 Kotlin 2.4
UI Jetpack Compose + Miuix + 自研液态玻璃特效层(AGSL RuntimeShader)
架构 单 Activity + Compose 页面 + Repository
数据 Room(4 索引 + 3 版迁移)+ DataStore
异步 Coroutines + Channel 生产者-消费者队列 + LRU 去重
AI(可选) 兼容 OpenAI Chat Completions 协议的任意端点,HttpURLConnection + kotlinx.serialization
加密 AndroidKeyStore + AES/GCM(API Key 静态加密)

🧠 识别引擎怎么工作

通知 → 关键词初筛(40+ 词,廉价过滤)
     → AI 语义抽取(可选,失败自动降级)
     → 三级正则抽取:
        ① 前缀词正则(取件码/提货码/凭码… 12 种)
        ② 分段数字 6-2-0838(排除日期 2026-10-21 与金额上下文 ¥ / 元)
        ③ 纯数字兜底(唯一最长者,排除年份)
     → 快递公司识别(【签名】优先 + 最长匹配)
     → 取件地点解析(括号站点 → 动词触发 → 宽松兜底)
     → 同码合并入库

设计原则:规则优先、AI 兜底、误报的代价高于漏报。详见博客文章《一条通知里的取件码》。

🚀 快速开始

环境要求

  • Android Studio(较新版本)+ JDK 21
  • Android SDK 24 (minSdk) — 37 (targetSdk/compileSdk)

构建

git clone https://github.com/Fq77/toCode.git
cd toCode
# 用 Android Studio 打开,同步 Gradle 后运行
./gradlew installDebug

首次配置

  1. 授予通知使用权(设置 → 通知读取权限)
  2. (可选)设置页配置 AI 接口:任意 OpenAI 兼容端点 + API Key + 模型名,用于长尾通知的语义兜底

📁 项目结构

app/src/main/java/com/tocode/app/
├── ai/            # AI 客户端与语义识别(AiClient / AiRecognizer / AiCallMonitor)
├── data/
│   ├── db/        # Room 数据库、DAO、迁移
│   ├── model/     # ExpressItem 实体
│   ├── prefs/     # DataStore 设置
│   └── repository/# 仓库层(同码合并、备份恢复)
├── engine/        # 识别引擎(ExpressRecognizer / CodeExtractor / KeywordMatcher)
├── service/       # NotificationListenerService 通知监听
├── ui/
│   ├── effects/   # 液态玻璃特效(EdgeLight SDF 着色器 / Glass / 渐进模糊)
│   ├── glass/     # 液态底栏、阻尼拖拽
│   ├── home/ history/ settings/ setup/ detail/ common/
│   └── theme/     # 主题
└── util/          # 取件地点解析、导出、加密等

📄 License

MIT © Fq77

About

码达 toCode — 通知栏监听式快递取件码 Android 应用(Kotlin + Jetpack Compose + AGSL 液态玻璃)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages