# 回复消息提醒器 **Repository Path**: embed2026/msg-ding-ding ## Basic Information - **Project Name**: 回复消息提醒器 - **Description**: 一款基于Android无障碍服务的定时情绪管家应用,帮助你在使用社交应用时定时提醒及时回复消息,避免因遗漏信息而产生社交压力或负面影响。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-20 - **Last Updated**: 2026-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 心安时刻提醒 一款基于 Android 无障碍服务的**定时情绪管家**应用,帮助你在使用社交应用时定时提醒及时回复消息,避免因遗漏信息而产生社交压力或负面影响。 --- ## ? 目录 - [功能特性](#功能特性) - [技术栈](#技术栈) - [项目结构](#项目结构) - [安装与使用](#安装与使用) - [1. 下载安装](#1-下载安装) - [2. 配置监控应用](#2-配置监控应用) - [3. 设置提醒间隔](#3-设置提醒间隔) - [4. 启动服务](#4-启动服务) - [5. 启用无障碍服务](#5-启用无障碍服务) - [6. 授予必要权限](#6-授予必要权限) - [权限说明](#权限说明) - [配置说明](#配置说明) - [注意事项](#注意事项) - [常见问题](#常见问题) - [许可证](#许可证) --- ## ? 功能特性 - **定时提醒**:当切换到指定的社交应用(如微信、QQ)时,定时弹出通知提醒你及时回复消息。 - **自定义监控应用**:支持用户手动输入要监控的应用包名(支持逗号分隔多个包名)。 - **自定义提醒间隔**:可自由设置提醒间隔(默认 60 秒),精确到秒。 - **开机自启**:注册广播监听系统开机事件,自动启动服务。 - **前台服务**:使用前台服务确保后台长期稳定运行,减少被系统杀死风险。 - **智能通知管理**:自动适配 Android 13+ 通知权限,并提供系统通知开关检测与引导。 - **电池优化白名单**:引导用户关闭电池优化,保证服务在后台持续运行。 - **无障碍服务自动恢复**:通过 SharedPreferences 记录服务启用状态,便于开机后提示用户检查无障碍开关。 --- ## ? 技术栈 - **语言**:Java - **最低 API**:Android 5.0 (Lollipop, API 21) - **目标 API**:Android 14 (Upside Down Cake, API 34) - **核心组件**: - `AccessibilityService`(无障碍服务) - `ForegroundService`(前台服务) - `BroadcastReceiver`(开机广播) - `SharedPreferences`(本地配置存储) - `NotificationManager`(通知管理) - **权限**:`POST_NOTIFICATIONS`、`FOREGROUND_SERVICE`、`RECEIVE_BOOT_COMPLETED` 等 --- ## ? 项目结构 ``` app/src/main/ ├── java/com/rabbitcandy/msgdingding/ │ ├── MainActivity.java # 主界面:配置、启动服务、权限引导 │ ├── MoodReminderService.java # 无障碍服务核心逻辑 │ └── BootReceiver.java # 开机自启广播接收器 ├── res/ │ ├── layout/ │ │ └── activity_main.xml # 主界面布局 │ ├── values/ │ │ └── strings.xml # 应用名称及无障碍描述 │ └── xml/ │ └── accessibility_service_config.xml # 无障碍服务配置 └── AndroidManifest.xml # 清单文件(权限、组件声明) ``` --- ## ? 安装与使用 ### 1. 下载安装 - 从发布渠道获取 APK 文件,安装到 Android 设备。 - 或通过 Android Studio 编译运行。 ### 2. 配置监控应用 打开应用主界面,在 **“监控应用包名”** 输入框中,以逗号分隔输入需要监控的应用包名,例如: ``` com.tencent.mobileqq,com.tencent.mm,com.google.android.youtube ``` > 注:默认已内置 `com.tencent.mobileqq`(QQ)、`com.tencent.mm`(微信)、`com.google.android.youtube`(YouTube),用户添加的包名会**追加**到默认列表中。 ### 3. 设置提醒间隔 在 **“提醒间隔时间(秒)”** 输入框中,输入你期望的间隔(正整数),例如 `120` 表示每 2 分钟提醒一次。若不填写则默认 60 秒。 ### 4. 启动服务 点击 **“启动服务”** 按钮,应用会保存当前配置并引导你开启无障碍服务(若未开启)。 ### 5. 启用无障碍服务 由于应用依赖无障碍服务,请按照提示跳转到系统的“无障碍”设置页面,找到 **“心安时刻提醒”** 并**开启服务**。开启后,服务将自动运行。 ### 6. 授予必要权限 - **通知权限**(Android 13+):首次打开应用会申请通知权限,请允许,否则无法弹出提醒通知。 - **电池优化白名单**:应用会引导你进入系统设置关闭电池优化,确保后台服务不被系统限制。 - **开机自启**:部分系统可能需要手动允许应用自启动(MIUI、EMUI 等),请根据系统提示操作。 --- ## ? 权限说明 | 权限 | 用途 | |------|------| | `android.permission.POST_NOTIFICATIONS` | 发送通知提醒(Android 13+ 运行时权限) | | `android.permission.FOREGROUND_SERVICE` | 运行前台服务,保证后台稳定性 | | `android.permission.RECEIVE_BOOT_COMPLETED` | 监听开机广播,实现开机自启 | | `android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS` | 请求忽略电池优化,防止服务被休眠 | | `android.permission.SYSTEM_ALERT_WINDOW` | (预留)部分系统可能需要,本应用未实际使用 | | `android.permission.SCHEDULE_EXACT_ALARM` | (预留)精确闹钟,本应用未实际使用 | | `android.permission.FOREGROUND_SERVICE_SPECIAL_USE` | 声明特殊用途前台服务(Android 14+ 要求) | | `BIND_ACCESSIBILITY_SERVICE`(隐式) | 绑定无障碍服务,实现事件监听 | --- ## ?? 配置说明 所有配置保存在 `SharedPreferences`(文件名为 `MoodReminderPrefs`),键值如下: | 键名 | 类型 | 说明 | |------|------|------| | `package_list` | `Set` | 用户自定义的监控包名列表(不含默认包名) | | `reminder_interval` | `long` | 提醒间隔(毫秒),默认 60000 | | `last_reminder_time` | `long` | 上一次提醒的时间戳,用于计算间隔 | | `accessibility_enabled` | `boolean` | 记录无障碍服务是否已启用(用于开机引导) | > 应用在运行时会自动合并默认包名与用户自定义包名,无需担心覆盖问题。 --- ## ?? 注意事项 1. **无障碍服务依赖**:应用必须开启无障碍服务才能工作,且每次系统重启后可能需要重新开启(取决于系统策略)。 2. **后台限制**:部分国产 ROM(如 MIUI、EMUI、ColorOS)会对后台应用进行限制,请务必将应用加入“自启动”和“后台锁定”白名单,并关闭电池优化,否则服务可能无法稳定运行。 3. **提醒逻辑**:仅在**切换到**监控应用时触发检查,如果停留在监控应用内,每过 `reminder_interval` 时间会再次提醒(前提是切换了窗口或重新进入)。 4. **通知渠道**:Android 8.0+ 会自动创建通知渠道(ID: `mood_reminder_channel`),用户可在系统设置中自定义提醒音、震动等。 5. **应用包名获取**:如需监控其他应用,可通过 `adb shell pm list packages` 或使用“包名查看器”类工具获取正确的包名。 --- ## ? 常见问题 **Q:开启无障碍服务后,提醒没生效?** A:请检查: - 监控的包名是否正确(区分大小写) - 是否处于该应用界面(切换应用才会触发检查) - 提醒间隔是否设置过大 - 通知权限是否已授予,系统通知总开关是否打开 **Q:开机后服务未自动启动?** A:部分系统禁止了第三方应用的开机自启,请手动在系统设置中允许应用自启动,或重新打开主界面点击“启动服务”。 **Q:如何关闭服务?** A:在系统“无障碍”设置中关闭“心安时刻提醒”服务即可,或卸载应用。 **Q:提醒通知不弹出?** A:检查通知权限(Android 13+)和系统通知总开关,若都已开启,请确保通知渠道未被静音或屏蔽。 **Q:是否可以监听系统应用或非第三方应用?** A:可以,只要包名正确,无障碍服务能检测到任何应用的窗口变化。 --- ## ? 贡献 欢迎提交 Issue 或 Pull Request 改进项目。如有任何疑问,请通过仓库联系方式沟通。 --- **心安时刻提醒** —— 让社交更从容,让生活更舒心。