OpenHarmony实战开发-通过使用后台代理提醒能力,创建闹钟、日历

介绍

本示例通过使用后台代理提醒的能力,创建闹钟、日历、计时器三种类型的定时提醒,保证应用被冻结或退出时,计时和弹出提醒的功能可以被后台系统服务代理。

本示例使用 Tabs组件 进行应用布局,使用 Canvas组件 绘制时钟、倒计时,使用 后台代理提醒 发布后台代理提醒,使用 振动 设置振动效果。

效果预览

使用说明:

1.点击闹钟、日历、计时器三个按钮切换不同视图。

2.1.点击闹钟页面右上角**+**按钮选择闹钟提醒时间添加闹钟提醒。

2.2.点击闹钟列表中可设置闹钟重复日期、延迟次数、延迟时长、是否震动、响铃音乐。

2.3.点击闹钟列表右侧开关按钮,可关闭或打开当前提醒。

2.4.右滑当前闹钟列表可选择删除当前提醒。

3.1.点击点击日历页面右上角**+**按钮选择日期提醒时间添加日期提醒。

3.2.点击日期列表中可设置日历提醒当天具体提醒时间、是否振动、是否响铃。

3.3.点击日历列表右侧开关按钮,可关闭或打开当前提醒。

3.4.右滑当前日历列表可选择删除当前提醒。

4.1.滑动计时器时间选项设置计时器时间。

4.2.点击开始按钮,开始当前计时器并设置倒计时后台提醒。

4.3.点击重置按钮,取消当前计时器提醒并重新设置计时器。

4.4.点击暂停按钮,暂停当前计时器提醒与倒计时;再次点击按钮恢复计时器提醒与计时器计时。

工程目录

bash 复制代码
entry/src/main/ets/
|---Application
|   |---MyAbilityStage.ts
|---common
|   |---Constant.ets                      // 数据初始化
|   |---Reminder.ets                      // 定义数据类型
|---MainAbility
|   |---MainAbility.ts
|---pages
|   |---Index.ets                         // 首页
|   |---alarmClock                         
|   |   |---AlarmClock.ets                // 闹钟页面
|   |   |---AlarmClockSetting.ets         // 设置闹钟
|   |   |---DrawClock.ets                 // 绘制闹钟
|   |---calendar
|   |   |---Calendar.ets                  // 日历页面
|   |   |---CalendarSetting.ets           // 设置日历
|   |---timer
|   |   |---SelectTime.ets                // 计时器页面
|   |   |---Timer.ets                     // 计时
|---util
|   |---AlarmClockReminder.ets            // 闹钟管理
|   |---AudioPlayer.ets                   // 音频播放
|   |---CalendarReminder.ets              // 日历管理
|   |---PreferencesDataManager.ets        // 数据管理
|   |---TimeConversion.ets                // 时间转换
|   |---Logger.ts                         // 日志打印

具体实现

  • 该示例分为闹钟,日历,计时器三个模块
  • 闹钟模块
  • 使用Canvas组件绘制一个闹钟,SlotType方法获取对应的系统能力内容类型,addNotificationSlot方法添加一个NotificationSlot,ReminderRequestAlarm方法获取闹钟实例对象,用于设置提醒的时间,ReminderType方法设置提醒的类型,ActionButtonType方法设置按钮的类型,VibratorStopMode方法停止的振动。
  • 日历模块
  • 使用SlotType方法获取对应的系统能力内容类型,ReminderRequestCalendar方法获取日历实例对象,用于设置提醒的时间,ReminderType方法设置提醒的类型,ActionButtonType方法设置按钮的类型,VibratorStopMode方法停止的振动。
  • 计时器模块
  • 使用SlotType方法获取对应的系统能力内容类型,addNotificationSlot方法添加一个NotificationSlot,ReminderRequestTimer方法获取倒计时实例对象,用于设置提醒的时间,ReminderType方法设置提醒的类型,ActionButtonType方法设置按钮的类型,VibratorStopMode方法停止的振动。

相关权限

1.允许该应用使用后台代理提醒 ohos.permission.PUBLISH_AGENT_REMINDER

2.允许应用控制马达振动 ohos.permission.VIBRATE

3.允许应用读取用户外部存储中的媒体文件信息 ohos.permission.READ_MEDIA

依赖

不涉及。

约束与限制

1.本示例仅支持标准系统上运行,支持设备:RK3568。

2.本示例已适配API version 9版本SDK,版本号:3.2.11.9。

3.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行。

下载

如需单独下载本工程,执行如下命令:

bash 复制代码
git init
git config core.sparsecheckout true
echo code/BasicFeature/TaskManagement/ReminderAgentManager/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了帮助大家更深入有效的学习到鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等...视频教程


鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→ https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG?u=a42c4946d1514235863bb82a7b2ac128

鸿蒙 (Harmony OS)开发学习手册→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

一、入门必看

1.应用开发导读(ArkTS)
2.........

二、HarmonyOS 概念→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.系统定义
2.技术架构
3.技术特性
4.系统安全
5...

三、如何快速入门?→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.基本概念
2.构建第一个ArkTS应用
3...

四、开发基础知识→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言

五、基于ArkTS 开发→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列

更多了解更多鸿蒙开发的相关知识可以参考:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

相关推荐
一只栖枝3 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
zhanshuo7 小时前
在鸿蒙里优雅地处理网络错误:从 Demo 到实战案例
harmonyos
zhanshuo7 小时前
在鸿蒙中实现深色/浅色模式切换:从原理到可运行 Demo
harmonyos
whysqwhw13 小时前
鸿蒙分布式投屏
harmonyos
whysqwhw14 小时前
鸿蒙AVSession Kit
harmonyos
whysqwhw16 小时前
鸿蒙各种生命周期
harmonyos
whysqwhw17 小时前
鸿蒙音频编码
harmonyos
whysqwhw17 小时前
鸿蒙音频解码
harmonyos
whysqwhw17 小时前
鸿蒙视频解码
harmonyos
whysqwhw17 小时前
鸿蒙视频编码
harmonyos