HarmonyOS 鸿蒙Next 创建闹钟、日历等需要开通代理提醒的相关问题解决方案
HarmonyOS 鸿蒙Next 创建闹钟、日历等需要开通代理提醒的相关问题解决方案
创建华为闹钟后,模拟器可以正常定时-响铃,真机无法跑通的原因及解决方案:
1,真机无法跑通的原因-由于应用存在滥用后台代理提醒能力,利用该能力发送广告、营销类延时提醒,影响用户体验;因此针对此问题,后台代理提醒增加管控机制,未通过管控的应用无法使用后台代理提醒能力。
2解决方案:
为了能满足此类功能场景,系统提供了代理提醒(reminderAgentManager)的能力。当应用退至后台或进程终止后,系统会代理应用做相应的提醒。当前支持的提醒类型包括:倒计时、日历和闹钟。为了防止代理提醒被用于滥用于广告、营销类提醒,影响用户体验,代理增加了管控机制,管控后的使用方法请参考管控限制。
-
倒计时类:基于倒计时的提醒功能。
-
日历类:基于日历的提醒功能。
-
闹钟类:基于时钟的提醒功能。
需要注意的是:
-
个数限制:一个三方应用支持最多30个有效提醒(有效即发布成功),一个系统应用支持最多10000个有效提醒,整个系统最多支持12000个有效提醒。
-
跳转限制:点击提醒通知后跳转的应用必须是申请代理提醒的本应用。
-
管控限制:管控后可通过日历Calendar Kit 替代代理提醒,实现相应的提醒功能。具体可参考开发指南
方式一:向华为侧申请代理提醒权限,当前仅对纯工具类应用开放申请。格式如下
邮件格式:
通过hwpush@huawei.com邮箱向华为侧申请,申请审批后即能正常调用代理提醒接口。
邮件主题:【代理提醒权限申请】
邮件正文:
申请权限名称:代理提醒
企业名称:
应用名称:***
应用包名:com..
使用场景:提供申请理由/用途/尽可能附上图片,及使用代理提醒发通知/提醒的必要性。
通知标题:***
通知文本:***
通知场景:***
通知频率:**
方式二:
1、申请ohos.permission.PUBLISH_AGENT_REMINDER权限,配置方式请参阅声明权限。
2、请求通知授权。获得用户授权后,才能使用代理提醒功能。
3、导入模块。
import { reminderAgentManager } from ‘@kit.BackgroundTasksKit’; import { notificationManager } from ‘@kit.NotificationKit’; import { BusinessError } from ‘@kit.BasicServicesKit’;
4、定义闹钟实例
let targetReminderAgent: reminderAgentManager.ReminderRequestAlarm = { reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM, // 提醒类型为闹钟类型 hour: 23, // 指明提醒的目标时刻 minute: 9, // 指明提醒的目标分钟 daysOfWeek: [2], // 指明每周哪几天需要重复提醒 actionButton: [ // 设置弹出的提醒通知信息上显示的按钮类型和标题 { title: ‘close’, type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE }, { title: ‘snooze’, type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE }, ], wantAgent: { // 点击提醒通知后跳转的目标UIAbility信息 pkgName: ‘com.example.myapplication’, abilityName: ‘EntryAbility’ }, maxScreenWantAgent: { // 全屏显示提醒到达时自动拉起的目标UIAbility信息 pkgName: ‘com.example.myapplication’, abilityName: ‘EntryAbility’ }, ringDuration: 5, // 指明响铃时长(单位:秒) snoozeTimes: 2, // 指明延迟提醒次数 timeInterval: 560, // 执行延迟提醒间隔(单位:秒) title: ‘this is title’, // 指明提醒标题 content: ‘this is content’, // 指明提醒内容 expiredContent: ‘this reminder has expired’, // 指明提醒过期后需要显示的内容 snoozeContent: ‘remind later’, // 指明延迟提醒时需要显示的内容 notificationId: 99, // 指明提醒使用的通知的ID号,相同ID号的提醒会覆盖 slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION // 指明提醒的Slot类型 }
5、发布相应的提醒代理。代理发布后,应用即可使用后台代理提醒功能。
reminderAgentManager.publishReminder(targetReminderAgent).then((res: number) => { console.info('Succeeded in publishing reminder. '); let reminderId: number = res; // 发布的提醒ID }).catch((err: BusinessError) => { console.error(
Failed to publish reminder. Code: ${err.code}, message: ${err.message}
); })6、根据需要删除提醒任务。
let reminderId: number = 1; // reminderId的值从发布提醒代理成功之后的回调中获得 reminderAgentManager.cancelReminder(reminderId).then(() => { console.log(‘Succeeded in canceling reminder.’); }).catch((err: BusinessError) => { console.error(
Failed to cancel reminder. Code: ${err.code}, message: ${err.message}
); });
作为IT专家,针对HarmonyOS鸿蒙Next创建闹钟、日历等需要开通代理提醒的相关问题,以下提供解决方案:
HarmonyOS Next提供了代理提醒(Agent-powered Reminder)功能,允许应用在后台被挂起或进程终止后,由系统代理应用执行提醒任务,如倒计时、日历、闹钟等。以下是具体步骤:
- 申请权限:在应用配置文件中添加ohos.permission.PUBLISH_AGENT_REMINDER权限。
- 请求通知授权:获得用户授权后才能使用代理提醒功能。
- 定义提醒内容:根据需要定义闹钟或日历提醒内容,包括提醒标题、内容、过期内容、通知渠道等。
- 发布提醒:调用publishReminder接口发布提醒任务。
- 取消提醒:根据需要调用cancelReminder或cancelAllReminders接口取消提醒任务。
注意事项:
- HarmonyOS Next支持三种类型的代理提醒:倒计时提醒、日历提醒和闹钟提醒,主要通过reminderType来设置。
- 一个三方应用支持最多30个有效提醒,一个系统应用支持最多10000个有效提醒,整个系统最多支持12000个有效提醒。
- 点击提醒通知后跳转的应用必须是申请代理提醒的本应用。
如果在实施过程中遇到问题,如配置错误或功能无法实现,请确保所有步骤正确无误,并检查网络连接是否正常。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。