Skip to content

ceilf6/Android_DayMate

Repository files navigation

DayMate — 你的日程小帮手

一个面向日常与专业场景的安卓日历产品。DayMate 以清晰直观的日历视图和灵活的事件管理为核心,兼顾本地隐私与标准互操作性(支持 RFC5545/ICS),适合个人用户与对日程导入/订阅有需求的高级用户。

核心卖点

  • 视图丰富:支持月视图、周视图、日视图,快速切换,聚焦你关心的时间范围。
  • 简洁的日程编辑:快速新增/编辑/删除日程,支持重复规则与自定义提醒。
  • 可靠的提醒体系:本地通知与开机后重建提醒,支持多次提前提醒。
  • 标准兼容:支持 RFC5545/ICS 的导入导出,便于与其他日历(Google Calendar、Outlook 等)互通。
  • 网络订阅:支持通过 URL 订阅公共或私有日历(webcal/https),自动周期更新。
  • 农历支持:内置农历展示(节气、农历日期),方便面向中文用户的使用习惯。

适用场景

  • 个人时间管理:安排会议、任务与待办。
  • 家庭共享日历(导出/订阅):将日程共享给家人或订阅外部日历。
  • 导入历史日程:从 ICS 文件导入批量事件。

主要功能一览

  • 日历视图

    • 月视图 / 周视图 / 日视图切换
    • 支持事件预览、长期事件与全天事件展示
  • 事件管理

    • 新建 / 编辑 / 删除事件
    • 支持重复规则(常见模式)与结束条件
    • 多条提醒规则(例如:提前 30 分钟、10 分钟)
  • 导入与导出

    • ICS 文件导入(解析 RFC5545)
    • ICS 导出以便在其他应用中导入
  • 网络订阅

    • 支持 webcal:// 和 https:// 的日历订阅
    • 后台定期同步订阅源(可配置)
  • 农历与本地化

    • 中文农历日期与节气显示
    • 本地化的时间/日期格式与语言支持

架构与实现(高层概述)

  • 平台:Android(基于 Kotlin 与 AndroidX 组件)
  • 数据存储:本地数据库(例如 Room)用于持久化事件与订阅元数据
  • 后台任务:使用 WorkManager 或等效方案做订阅同步与提醒重建
  • 通知:使用系统 Notification/Foreground Service(按 Android 版本适配 POST_NOTIFICATIONS 等权限)

(注:具体实现细节请参考项目源码)

权限与隐私

  • 常见需要的权限:

    • INTERNET:用于订阅日历与网络导入
    • POST_NOTIFICATIONS(Android 13+):发送本地提醒通知
    • RECEIVE_BOOT_COMPLETED:设备重启后重建提醒(可选,可通过 WorkManager 实现无需显式广播权限)
    • 存储访问:当导入导出需要访问设备文件时,使用 SAF(Storage Access Framework)以遵循现代权限模型
  • 隐私说明:

    • 默认情况下数据保存在本地设备,不会自动发送到第三方服务器。
    • 订阅功能会连接订阅源的 URL 以获取日程数据;如果使用需要验证的私有订阅,凭证只保存在本地(请勿将敏感凭证明文提交到仓库)。

导入/导出与订阅 指南

  • 导入 ICS 文件:

    1. 在“设置/导入”中选择 ICS 文件。
    2. 应用会解析 RFC5545 事件,并提示冲突与重复事件策略。
  • 导出为 ICS:选择一个日历或事件集导出为标准 ICS 文件,方便备份或导入到其他日历服务。

  • 订阅 URL:

    1. 在“订阅”中填入 webcal:// 或 https:// 链接。
    2. 配置同步频率(例如每日 / 每小时)。

快速开始(开发者/测试)

在 macOS 或其他开发环境中使用 Android Studio 打开本项目目录,然后运行或调试应用:

# 使用 Gradle Wrapper 构建(在项目根目录):
./gradlew assembleDebug

# 直接运行(需连接设备或启用模拟器):
./gradlew installDebug

更多调试与测试步骤请参见项目内的模块说明与注释。

屏幕与演示

(仓库可添加 screenshots/ 文件夹并放置演示图片)

常见问题(FAQ)

  • 问:导入后时间出现偏移?

    • 答:请检查导入文件的时区声明(VTIMEZONE)与设备时区设置,导入时可选择是否强制使用设备时区。
  • 问:订阅为什么会不更新?

    • 答:检查订阅源是否有效、同步频率设置,以及是否存在网络连接问题或认证失败。

贡献与反馈

欢迎提 Issue、PR 或功能建议。若需贡献代码:

  1. Fork 仓库
  2. 新建分支实现功能或修复 bug
  3. 提交 PR 并描述变更与测试步骤

请在 PR 中附上可复现步骤与相关日志(如有)。

许可

请参阅仓库根目录的 LICENSE 文件了解本项目的许可证条款。

Roadmap(示例)

  • 短期:完善重复规则编辑 UI、增强 ICS 导入兼容性、增加主题与深色模式支持
  • 中期:云同步选项(可选)、共享日历编辑权限、更多第三方集成
  • 长期:智能日程推荐、日程冲突自动调度

感谢使用 DayMate!如需演示或定制化功能,欢迎在 Issue 中留言。

About

安卓日历APP - 25年腾讯菁英班

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages