Skip to content

SteveZMTstudios/calsync

Repository files navigation

通知日历同步

通过监听来自工作和社交APP的通知,将事件登记到您的日历中。

GitHub repo size GitHub release (release name instead of tag name) GitHub issues GitHub license

Warning

此项目包含部分AI生成(已经过人类审查)和人类编写修正的内容。
此项目目前仅支持简体中文 Simplified Chinese

本应用提供两个版本:

  • FOSS 版本:完全开源,不含闭源 SDK,无网络权限,提供最极致的隐私保障。
  • Full 版本:包含 Google ML Kit 增强解析引擎,支持更强大的实体提取。

尽管此应用申请了设备和通知访问权限,但是该程序本体未使用网络访问权限(FOSS 版本完全不申请网络权限),您的数据不会被存储,也不会传出设备。
(注:Full 版本中的 ML Kit SDK 可能会使用网络权限进行诊断数据上报,详情见隐私政策

需要 Android 6.0 或更高版本。

查看此应用的 隐私政策

详细信息

包名

top.stevezmt.calsync

SDK版本信息

minSDK: 23 tarSDK: 36

权限列表和说明

  • android.permission.READ_CALENDAR 读取日历活动和详情
    必需的权限,它用于添加到特定日历和链接到日历事件的通知提示。
  • android.permission.WRITE_CALENDAR 添加或修改日历活动
    必需的权限,它用于添加到特定日历和链接到日历事件的通知提示。
  • android.permission.FOREGROUND_SERVICE 允许在前台运行服务
    必需的权限,它用于在后台持续监听通知。若拒绝此权限,应用将无法持续运作。
  • android.permission.FOREGROUND_SERVICE_SPECIAL_USE 允许在前台运行特殊用途服务(用于通知监听和保活)
  • android.permission.POST_NOTIFICATIONS 允许发送通知
    可选的权限,拒绝将导致您无法知晓哪些日历被更改或程序崩溃,也无法从通知中删除或编辑创建的日历。
  • android.permission.SCHEDULE_EXACT_ALARM 允许设置精确闹钟(用于崩溃后的通知提醒)
  • android.permission.QUERY_ALL_PACKAGES 允许查询所有已安装的应用包
    可选的权限,允许用户选取要检查通知的应用。若拒绝此权限,用户只能选择预设的应用包,或选择匹配所有通知来源。
  • android.permission.BIND_NOTIFICATION_LISTENER_SERVICE 允许应用读取所有通知(核心功能)
  • android.permission.INTERNET / ACCESS_NETWORK_STATE 网络访问权限(仅限 Full 版本
    由 ML Kit SDK 引入,用于模型管理和匿名诊断上报。程序本体不使用。

三方库

  • FOSS 版本:未引入任何闭源三方库。
  • Full 版本:引入了 Google ML Kit (Entity Extraction) 用于增强解析。
  • 通用(源码集成/离线):集成并修改了 TimeNLP, xk-time, Jieba 等开源组件的逻辑。

使用指引

将该应用安装到您的设备,按照提示授予 日历需完全访问权限)和通知权限后,前往设置授予设备和通知权限(通知访问权),当通知栏看到正在监听后台通知常驻提示时,程序即已在后台运行。

默认配置下会匹配通知中包含通知``班级群字样的所有来源的通知。

快速开始

依赖:

  • JDK 21
  • Gradle 8.10+
  • Android SDK(API 21+)

克隆项目

git clone https://github.com/yourusername/calsync.git
cd calsync

构建项目

# 构建 FOSS 版本
./gradlew assembleFossRelease

# 构建 Full 版本 (含 ML Kit)
./gradlew assembleFullRelease

# 或者构建所有变体
./gradlew assembleRelease

# 仅构建调试版本
./gradlew build

运行测试

# 运行 FOSS 变体测试
./gradlew :app:testFossDebugUnitTest

# 运行 Full 变体测试
./gradlew :app:testFullDebugUnitTest

鸣谢

https://github.com/NagiYan/TimeNLP https://github.com/xkzhangsan/xk-time https://github.com/huaban/jieba-analysis https://developers.google.cn/ml-kit?hl=zh-cn

许可证

GPL-3.0 License. 详情见 LICENSE 文件。

Copyright (C) 2025  Steve ZMT me@stevezmt.top

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://gnu.ac.cn/licenses/>.

About

通过监听来自工作和社交APP的通知,将事件登记到您的日历中。

Resources

License

Stars

Watchers

Forks

Packages

No packages published