# TimeLock **Repository Path**: ch0ancyli/time-lock ## Basic Information - **Project Name**: TimeLock - **Description**: 应用限时助手 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-17 - **Last Updated**: 2026-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TimeLock - 应用限时助手 ## 1. 项目概述 - **项目名称**: TimeLock(应用限时助手) - **项目类型**: Android应用 - **核心功能**: 类似于OPPO数字健康的应用限时功能,检测用户使用APP并在其超过限时后弹出提醒页面 ## 2. 技术栈 - **开发语言**: Kotlin 2.0.0 - **最小SDK**: 29 (Android 10) - 适配安卓10+ - **目标SDK**: 34 (Android 14) - **构建工具**: Gradle 8.7 - **架构模式**: MVVM + Clean Architecture - **主要依赖**: - AndroidX Core KTX - Material Design 3 - AndroidX Lifecycle - Kotlin Coroutines - Hilt (依赖注入) - Room (数据库) - WorkManager (定时任务) ## 3. 功能列表 ### 3.1 页面功能 - **主页**: 包含"应用限时设置"和"应用限时列表"两个入口 - **应用限时设置页**: 列出手机所有APP,供用户勾选要限时的APP - **应用限时列表页**: 显示已设置限时的APP列表,可设置每个APP的限时时间(1-1440分钟) - **APP限时时间到页面**: 倒计时结束后弹出的页面,让用户重新设置时间 ### 3.2 核心功能 - 获取手机已安装APP列表 - 勾选要限时的APP - 设置每个APP的每日限时时间(分钟) - 后台检测用户打开的APP是否为限时APP - 限时到达后弹出悬浮窗提示页面 - 记住剩余时间(切换APP时保存) - 每天0点重置限时时间 ### 3.3 权限 - `android.permission.PACKAGE_USAGE_STATS` - 使用情况统计(需用户手动授权) - `android.permission.SYSTEM_ALERT_WINDOW` - 悬浮窗权限(需用户手动授权) - `android.permission.FOREGROUND_SERVICE` - 前台服务 - `android.permission.POST_NOTIFICATIONS` - 通知权限 ## 4. 页面流程 ``` 主页 ├── 应用限时设置 → 应用选择列表(勾选APP) → 返回 └── 应用限时列表 → 限时设置列表(设置时间) → 开始计时 后台检测: 用户打开APP → 检测是否为限时APP → 是 → 开始/继续倒计时 → 限时到 → 弹出悬浮窗 用户切换APP → 保存剩余时间 每天0点 → 重置所有限时时间 ``` ## 5. 数据模型 ### AppLimitInfo - `package_name`: String - APP包名 - `app_name`: String - APP名称 - `daily_limit_minutes`: Int - 每日限时(分钟) - `remaining_minutes`: Int - 剩余时间(分钟) - `is_enabled`: Boolean - 是否启用 - `last_reset_date`: String - 上次重置日期 ## 6. 项目结构 ``` app/src/main/ ├── java/com/timelock/ │ ├── data/ │ │ ├── local/ │ │ └── repository/ │ ├── domain/ │ │ └── model/ │ ├── presentation/ │ │ ├── main/ │ │ ├── app_select/ │ │ ├── app_list/ │ │ └── overlay/ │ ├── service/ │ └── di/ └── res/ ``` #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)