当前位置: 首页 > news >正文

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:flutterflutter_focus_mode:^1.0.0usage_stats_ohos:^1.0.0flutter_local_notifications_ohos:^1.0.0flutter_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. 数据模型 - 专注记录实体类

首先建个专注记录的数据类,存每次专注的信息~

classFocusRecord{finalStringid;finalint duration;finalDateTimestartTime;finalStringmode;finalbool isCompleted;FocusRecord({requiredthis.id,requiredthis.duration,requiredthis.startTime,requiredthis.mode,this.isCompleted=true});}

搞定!就是这么简洁~😎

2. 专注计时器 - 番茄工作法逻辑

番茄工作法的核心逻辑,25 分钟专注,5 分钟休息,循环往复~

voidstartPomodorotimer(){constworkDuration=Duration(minutes:25);timer=Timer.periodic(constDuration(seconds:1),(t){secondsLeft--;if(secondsLeft<=0){t.cancel();_onTimerComplete();}});}

完美!一个极简的番茄钟就实现了~⏰

3. 应用使用统计获取

获取今天各个 APP 的使用时长,看看时间都去哪了!

Future<List<AppUsageInfo>>getTodayUsage()async{finalnow=DateTime.now();finalstart=DateTime(now.year,now.month,now.day);returnawaitUsageStatsOhos.instance.queryUsageStats(start,now);}

就这几行,数据直接拿到手!📊

4. 白噪音播放功能

学习的时候来点白噪音,效率翻倍!雨声、森林声随便选~

voidplayWhiteNoise(Stringsound){FlutterRingtonePlayer.stop();FlutterRingtonePlayer.play(fromAsset:"assets/$sound.mp3",looping:true,volume:0.5);}

想停就停,想播就播,就是这么任性~🎵

5. 专注提醒通知

专注时间到了!该休息啦~发个通知提醒一下

Future<void>showFocusNotification()async{constandroidDetails=AndroidNotificationDetails('focus','专注提醒');constdetails=NotificationDetails(android:androidDetails);awaitflutterLocalNotificationsPlugin.show(0,'太棒了!','专注完成,休息5分钟吧~',details);}

每次收到这个通知都超有成就感!🎉

6. 专注模式防打扰

一键开启免打扰,谁也别想打扰我学习!

voidenableFocusMode()async{awaitFlutterFocusMode.instance.setDistractingBlocked(true);awaitFlutterFocusMode.instance.setDndMode(true);awaitFlutterFocusMode.instance.hideNotifications(true);}

世界瞬间清净了~学习效率 UP UP!🔕

7. 成就系统解锁逻辑

坚持专注就能解锁成就,动力满满!

voidcheckAchievementUnlock(int totalFocus){if(totalFocus>=60&&!hasAchievement('first_hour')){unlockAchievement('first_hour');showAchievementToast('专注达人');}}

收集成就徽章真的会上瘾!🏆


🏆 完整实现总结

项目结构

lib/ ├── models/ # 数据模型 ├── services/ # 核心服务(计时/统计/通知等) ├── screens/ # 页面 ├── widgets/ # 组件 └── main.dart

核心亮点总结

  1. 🍅 番茄工作法:科学的 25+5 专注循环,劳逸结合效率高

  2. 📊 真实数据统计:系统级应用使用统计,准确记录时间去向

  3. 🎵 沉浸式白噪音:多种环境音可选,打造专属学习氛围

  4. 🏆 游戏化成就:解锁徽章激励坚持,学习不再枯燥

  5. ⚡ 鸿蒙原生体验:完美适配 OpenHarmony,流畅不卡顿

运行效果

整个 APP 在 OpenHarmony 上运行超级丝滑!专注模式一开,真的能让人沉下心来学习,屏幕时间统计功能更是 &#34;时间杀手&#34;APP 的照妖镜,用了几天真的能明显感觉到自己玩手机的时间变少了~✨

扩展方向

觉得还不够?还可以加这些功能:

  • 📈 更详细的数据分析和周报月报

  • 👥 好友 PK 专注时长

  • 🎯 自定义专注目标和计划

  • ☁️ 数据云端同步


好啦!今天的 Flutter for OpenHarmony 专注模式 APP 就分享到这里~是不是超实用?赶紧动手做一个,再也不用担心学习分心啦!有问题欢迎在评论区交流,咱们下期再见~👋

记得给开源鸿蒙跨平台社区点个赞哦!https://openharmonycrossplatform.csdn.net

http://www.jsqmd.com/news/816677/

相关文章:

  • 从‘喂狗’到‘窗口狗’:深入理解Autosar WDG模块的安全设计哲学与常见误区
  • 【电赛实战】基于STM32F407与ADC-DMA的放大器非线性失真分析与优化
  • 避开淘宝客系统开发陷阱:技术选型、落地优化与专业团队选择
  • 终极CAJ转PDF解决方案:高效转换KDH/NH文件跨平台工具全指南
  • GitHub下载速度慢到崩溃?试试这款免费加速神器,速度飙升100倍!
  • 2026广东户用光伏品牌选购白皮书:别墅屋顶光伏哪家强?五大品牌实测避坑 - 服务品牌热点
  • SystemVerilog随机约束implication的概率分析与解空间设计
  • 如何用45分钟构建学校专属的游戏化编程教学系统?
  • 终极免费SOCD按键重映射指南:3分钟解决游戏输入冲突问题
  • Taotoken API Key的精细权限管理与审计日志价值
  • CnOpenData 中国工业企业海关进出口数据
  • 自己如何做小程序,2026年主流小程序制作平台对比 - 维双云小凡
  • 不止于点亮:用ST7565R驱动12864屏玩出花样(自定义字符与图形绘制)
  • 收藏!小白程序员必看:轻松掌握大模型 Harness 工程的核心技巧
  • Taotoken 模型广场如何帮助开发者快速选型与对比主流模型
  • 2026年广州注册OPC一人公司:政策红利+创业前景全解析 - 资讯速览
  • 前端三件套项目实战:从HTML/CSS/JS基础到完整应用开发
  • 国内软体储油囊供应商实力排行及核心能力对比 - 奔跑123
  • 【全志T113-S3实战】EC200A 4G模块RNDIS模式配置与网络调试
  • 探索安卓虚拟摄像头技术:VCAM项目的终极解决方案
  • GitAgent:基于Git的AI智能体标准化定义与合规管理框架
  • vmware的NAT的庖丁解牛
  • 终极指南:如何用dnSpyEx调试和编辑.NET 8程序集
  • 2026广东防水补漏公司推荐,广州卫生间防水补漏,东莞屋面防水补漏,佛山屋面防水补漏,广州地下室防水补漏,佛山卫生间防水补漏公司优选指南! - 品牌鉴赏师
  • sklearn实战篇(一)-- 鸢尾花(iris)数据集可视化与模型评估
  • Timepix4混合像素探测器系统与DataPix4框架解析
  • 终极Windows目录迁移指南:FreeMove让C盘空间瞬间释放
  • 深度解析:GroundingDINO配置文件实战选择与性能优化策略
  • 手机号查QQ号终极指南:3步找回失联好友的免费工具
  • Linux新手必看:解决mpirun报错‘could not access or execute‘的三种实战方法