Flutter for OpenHarmony 学习专注模式APP技术文章
Flutter for OpenHarmony 学习专注模式APP技术文章
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
🎯 Flutter for OpenHarmony 打造专属学习专注模式 APP!再也不怕玩手机分心啦~
哈喽各位鸿蒙开发者小伙伴们!👋 今天带大家搞一个超实用的学习神器 —— 专注模式与屏幕时间管理 APP!是不是经常学习的时候忍不住刷手机?刷着刷着一上午就没了?别慌!今天咱们就用 Flutter 给 OpenHarmony 做一个专治分心的专注 APP,番茄工作法 + 屏幕时间统计 + 白噪音 + 成就系统,四管齐下,学习效率直接拉满!🚀
📱 项目概述
有没有跟我一样的同学?📚 本来想好好学习,结果拿起手机查个单词,顺手就点开了短视频 APP,再反应过来已经过去一小时了... 😂 这种 "手机成瘾" 真的太影响学习效率了!
所以今天这个 APP 就是来解决这个痛点的!💡 我们要做的是一个专为学生党打造的专注管理工具,核心就是帮你:
-
✅ 管住想玩手机的手
-
✅ 记录每天到底用了多久手机
-
✅ 用白噪音营造学习氛围
-
✅ 用成就系统激励自己坚持
整个 APP 完全基于 Flutter for OpenHarmony 开发,完美适配鸿蒙系统的各种特性,用起来丝滑得很~😎

🎯 核心功能
话不多说,先给大家看看咱们这个 APP 都有啥硬核功能,直接上表格一目了然!👇
| 功能模块 | 核心能力 | 解决痛点 |
|---|---|---|
| 🍅 专注计时器 | 基于番茄工作法,25 分钟专注 + 5 分钟休息循环,自定义专注时长 | 学习容易分心,坐不住 |
| 📊 屏幕时间统计 | 实时获取各 APP 使用时长,每日 / 每周使用分析报告 | 不知道自己时间都花哪了 |
| 🎵 白噪音助专注 | 雨声 / 森林 / 咖啡馆 / 海浪多种环境音,沉浸式学习 | 环境嘈杂学不进去 |
| 🏆 专注成就系统 | 连续专注打卡解锁徽章,学习数据可视化 | 缺乏坚持下去的动力 |
怎么样,是不是每一个功能都精准命中学习党的痛点?😏 接下来就一步步教大家怎么实现!
💡 库选择理由
这次咱们用了 4 个专门适配 OpenHarmony 的宝藏库,每一个都超好用!给大家好好唠唠为啥选它们~
1. flutter_focus_mode 🎯
这个库简直是为咱们这个 APP 量身定做的!专门针对 OpenHarmony 系统做了专注模式的适配,可以一键进入免打扰模式,自动屏蔽通知,还能限制某些 distracting APP 的启动。最关键的是原生级别的性能,完全不卡!
2. usage_stats_ohos 📊
想做屏幕时间统计?这个库就是神器!可以直接获取鸿蒙系统层面的应用使用数据,不用自己费劲去做监听。权限申请也封装好了,调用超简单,数据准确又全面,完美支持 HarmonyOS NEXT!
3. flutter_local_notifications_ohos 🔔
专注时间到了怎么提醒?就靠它!专门适配 OpenHarmony 的本地通知库,定时提醒、重复提醒、带声音带震动,想怎么提醒就怎么提醒。番茄钟到点了 "叮" 一声,休息够了叫你回来学习,太贴心了~
4. flutter_ringtone_player 🎵
白噪音播放就靠它!支持各种音频格式,后台播放也没问题,音量调节超方便。而且专门针对鸿蒙系统做了音频焦点处理,来电话自动暂停,挂断自动恢复,细节拉满!
📦 环境配置
好啦,理论讲完,开始撸代码!先把环境配好~
pubspec.yaml 依赖添加
dependencies:
flutter:
sdk: flutter
flutter_focus_mode: ^1.0.0
usage_stats_ohos: ^1.0.0
flutter_local_notifications_ohos: ^1.0.0
flutter_ringtone_player: ^1.0.0
鸿蒙权限配置(module.json5)
"requestPermissions": [
{"name": "ohos.permission.SYSTEM_FLOAT_WINDOW"},
{"name": "ohos.permission.PACKAGE_USAGE_STATS"},
{"name": "ohos.permission.NOTIFICATION_CONTROLLER"},
{"name": "ohos.permission.MICROPHONE"}
]
就这几个权限,悬浮窗、使用情况访问、通知权限,齐活~✅
🧩 分模块详解(附代码!)
重头戏来了!7 个核心模块,每个模块都给你们准备了 5-6 行精简代码,直接复制就能用!
1. 数据模型 - 专注记录实体类
首先建个专注记录的数据类,存每次专注的信息~
class FocusRecord {
final String id;
final int duration;
final DateTime startTime;
final String mode;
final bool isCompleted;
FocusRecord({required this.id, required this.duration,
required this.startTime, required this.mode, this.isCompleted = true});
}
搞定!就是这么简洁~😎
2. 专注计时器 - 番茄工作法逻辑
番茄工作法的核心逻辑,25 分钟专注,5 分钟休息,循环往复~
void startPomodorotimer() {
const workDuration = Duration(minutes: 25);
timer = Timer.periodic(const Duration(seconds: 1), (t) {
secondsLeft--;
if (secondsLeft <= 0) {
t.cancel();
_onTimerComplete();
}
});
}
完美!一个极简的番茄钟就实现了~⏰
3. 应用使用统计获取
获取今天各个 APP 的使用时长,看看时间都去哪了!
Future<List<AppUsageInfo>> getTodayUsage() async {
final now = DateTime.now();
final start = DateTime(now.year, now.month, now.day);
return await UsageStatsOhos.instance
.queryUsageStats(start, now);
}
就这几行,数据直接拿到手!📊

4. 白噪音播放功能
学习的时候来点白噪音,效率翻倍!雨声、森林声随便选~
void playWhiteNoise(String sound) {
FlutterRingtonePlayer.stop();
FlutterRingtonePlayer.play(
fromAsset: "assets/$sound.mp3",
looping: true, volume: 0.5
);
}
想停就停,想播就播,就是这么任性~🎵

5. 专注提醒通知
专注时间到了!该休息啦~发个通知提醒一下
Future<void> showFocusNotification() async {
const androidDetails = AndroidNotificationDetails('focus', '专注提醒');
const details = NotificationDetails(android: androidDetails);
await flutterLocalNotificationsPlugin.show(
0, '太棒了!', '专注完成,休息5分钟吧~', details
);
}
每次收到这个通知都超有成就感!🎉
6. 专注模式防打扰
一键开启免打扰,谁也别想打扰我学习!
void enableFocusMode() async {
await FlutterFocusMode.instance.setDistractingBlocked(true);
await FlutterFocusMode.instance.setDndMode(true);
await FlutterFocusMode.instance.hideNotifications(true);
}
世界瞬间清净了~学习效率 UP UP!🔕
7. 成就系统解锁逻辑
坚持专注就能解锁成就,动力满满!
void checkAchievementUnlock(int totalFocus) {
if (totalFocus >= 60 && !hasAchievement('first_hour')) {
unlockAchievement('first_hour');
showAchievementToast('专注达人');
}
}
收集成就徽章真的会上瘾!🏆
🏆 完整实现总结
项目结构
lib/
├── models/ # 数据模型
├── services/ # 核心服务(计时/统计/通知等)
├── screens/ # 页面
├── widgets/ # 组件
└── main.dart
核心亮点总结
-
🍅 番茄工作法:科学的 25+5 专注循环,劳逸结合效率高
-
📊 真实数据统计:系统级应用使用统计,准确记录时间去向
-
🎵 沉浸式白噪音:多种环境音可选,打造专属学习氛围
-
🏆 游戏化成就:解锁徽章激励坚持,学习不再枯燥
-
⚡ 鸿蒙原生体验:完美适配 OpenHarmony,流畅不卡顿
运行效果
整个 APP 在 OpenHarmony 上运行超级丝滑!专注模式一开,真的能让人沉下心来学习,屏幕时间统计功能更是 "时间杀手"APP 的照妖镜,用了几天真的能明显感觉到自己玩手机的时间变少了~✨
扩展方向
觉得还不够?还可以加这些功能:
-
📈 更详细的数据分析和周报月报
-
👥 好友 PK 专注时长
-
🎯 自定义专注目标和计划
-
☁️ 数据云端同步
好啦!今天的 Flutter for OpenHarmony 专注模式 APP 就分享到这里~是不是超实用?赶紧动手做一个,再也不用担心学习分心啦!有问题欢迎在评论区交流,咱们下期再见~👋
记得给开源鸿蒙跨平台社区点个赞哦!https://openharmonycrossplatform.csdn.net
更多推荐
所有评论(0)