1# @ohos.reminderAgentManager (后台代理提醒) 2 3本模块提供后台代理提醒的能力,即当应用被冻结或应用退出时,计时和提醒的功能将被系统服务代理。开发者可以调用本模块接口创建定时提醒,提醒类型支持倒计时、日历、闹钟三种。 4 5> **说明:** 6> 7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9 10## 导入模块 11 12```ts 13import { reminderAgentManager } from '@kit.BackgroundTasksKit'; 14``` 15 16## reminderAgentManager.publishReminder 17 18publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback\<number>): void 19 20发布后台代理提醒。使用callback异步回调。 21 22> **说明:** 23> 24> 该接口需要申请通知弹窗权限[NotificationManager.requestEnableNotification](../apis-notification-kit/js-apis-notificationManager.md#notificationmanagerrequestenablenotification10)后调用。 25> 26> <!--RP1--><!--RP1End--> 27 28**需要权限**: ohos.permission.PUBLISH_AGENT_REMINDER 29 30**系统能力**: SystemCapability.Notification.ReminderAgent 31 32**参数**: 33 34 | 参数名 | 类型 | 必填 | 说明 | 35 | -------- | -------- | -------- | -------- | 36 | reminderReq | [ReminderRequest](#reminderrequest) | 是 | 需要发布的代理提醒实例。 | 37 | callback | AsyncCallback\<number> | 是 | 回调函数,返回当前发布提醒的id。 | 38 39**错误码:** 40 41以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 42 43| 错误码ID | 错误信息 | 44| --------- | ------- | 45| 401 | If the input parameter is not valid parameter. | 46| 1700001 | Notification is not enabled. | 47| 1700002 | The number of reminders exceeds the limit. | 48 49**示例**: 50```ts 51import { BusinessError } from '@kit.BasicServicesKit'; 52 53let timer: reminderAgentManager.ReminderRequestTimer = { 54 reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER, 55 triggerTimeInSeconds: 10 56} 57 58reminderAgentManager.publishReminder(timer, (err: BusinessError, reminderId: number) => { 59 if (err.code) { 60 console.error("callback err code:" + err.code + " message:" + err.message); 61 } else { 62 console.log("callback, reminderId = " + reminderId); 63 } 64}); 65``` 66 67## reminderAgentManager.publishReminder 68 69publishReminder(reminderReq: ReminderRequest): Promise\<number> 70 71发布后台代理提醒。使用promise异步回调。 72 73> **说明:** 74> 75> 该接口需要申请通知弹窗权限[NotificationManager.requestEnableNotification](../apis-notification-kit/js-apis-notificationManager.md#notificationmanagerrequestenablenotification10)后调用。 76> 77> <!--RP1--><!--RP1End--> 78 79**需要权限**: ohos.permission.PUBLISH_AGENT_REMINDER 80 81**系统能力**: SystemCapability.Notification.ReminderAgent 82 83**参数**: 84 85 | 参数名 | 类型 | 必填 | 说明 | 86 | -------- | -------- | -------- | -------- | 87 | reminderReq | [ReminderRequest](#reminderrequest) | 是 | 需要发布的代理提醒实例。 | 88 89**返回值**: 90 91| 类型 | 说明 | 92| -------- | -------- | 93| Promise\<number> | Promise对象,返回当前发布提醒的id。 | 94 95**错误码:** 96 97以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 98 99| 错误码ID | 错误信息 | 100| --------- | ------- | 101| 401 | If the input parameter is not valid parameter. | 102| 1700001 | Notification is not enabled. | 103| 1700002 | The number of reminders exceeds the limit. | 104 105**示例**: 106```ts 107import { BusinessError } from '@kit.BasicServicesKit'; 108 109let timer: reminderAgentManager.ReminderRequestTimer = { 110 reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER, 111 triggerTimeInSeconds: 10 112} 113 114reminderAgentManager.publishReminder(timer).then((reminderId: number) => { 115 console.log("promise, reminderId = " + reminderId); 116}).catch((err: BusinessError) => { 117 console.error("promise err code:" + err.code + " message:" + err.message); 118}); 119``` 120 121 122## reminderAgentManager.cancelReminder 123 124cancelReminder(reminderId: number, callback: AsyncCallback\<void>): void 125 126取消指定id的代理提醒。使用callback异步回调。 127 128**系统能力**: SystemCapability.Notification.ReminderAgent 129 130**参数**: 131 132| 参数名 | 类型 | 必填 | 说明 | 133| -------- | -------- | -------- | -------- | 134| reminderId | number | 是 | 需要取消的代理提醒的id。 | 135| callback | AsyncCallback\<void> | 是 | 回调函数,取消代理提醒成功,err为undefined,否则返回err信息。 | 136 137**错误码:** 138 139以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 140 141| 错误码ID | 错误信息 | 142| --------- | ------- | 143| 401 | If the input parameter is not valid parameter. | 144| 1700003 | The reminder does not exist. | 145| 1700004 | The bundle name does not exist. | 146 147**示例**: 148 149```ts 150import { BusinessError } from '@kit.BasicServicesKit'; 151 152let reminderId: number = 1; 153reminderAgentManager.cancelReminder(reminderId, (err: BusinessError) => { 154 if (err.code) { 155 console.error("callback err code:" + err.code + " message:" + err.message); 156 } else { 157 console.log("cancelReminder callback"); 158 } 159}); 160``` 161 162## reminderAgentManager.cancelReminder 163 164cancelReminder(reminderId: number): Promise\<void> 165 166取消指定id的代理提醒。使用Promise异步回调。 167 168**系统能力**: SystemCapability.Notification.ReminderAgent 169 170**参数**: 171 172| 参数名 | 类型 | 必填 | 说明 | 173| -------- | -------- | -------- | -------- | 174| reminderId | number | 是 | 需要取消的代理提醒的id。 | 175 176**返回值**: 177 178| 类型 | 说明 | 179| -------- | -------- | 180| Promise\<void> | 无返回结果的Promise对象。 | 181 182**错误码:** 183 184以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 185 186| 错误码ID | 错误信息 | 187| --------- | ------- | 188| 401 | If the input parameter is not valid parameter. | 189| 1700003 | The reminder does not exist. | 190| 1700004 | The bundle name does not exist. | 191 192**示例**: 193 194```ts 195import { BusinessError } from '@kit.BasicServicesKit'; 196 197let reminderId: number = 1; 198reminderAgentManager.cancelReminder(reminderId).then(() => { 199 console.log("cancelReminder promise"); 200}).catch((err: BusinessError) => { 201 console.error("promise err code:" + err.code + " message:" + err.message); 202}); 203``` 204 205## reminderAgentManager.getValidReminders 206 207getValidReminders(callback: AsyncCallback<Array\<ReminderRequest>>): void 208 209获取当前应用设置的所有[有效(未过期)的代理提醒](../../task-management/agent-powered-reminder.md#约束与限制)。使用callback异步回调。 210 211**系统能力**: SystemCapability.Notification.ReminderAgent 212 213**参数**: 214 215| 参数名 | 类型 | 必填 | 说明 | 216| -------- | -------- | -------- | -------- | 217| callback | AsyncCallback\<Array\<[ReminderRequest](#reminderrequest)>> | 是 | 回调函数,返回当前应用设置的所有有效(未过期)的代理提醒。 | 218 219**错误码:** 220 221以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 222 223| 错误码ID | 错误信息 | 224| --------- | ------- | 225| 401 | If the input parameter is not valid parameter. | 226| 1700004 | The bundle name does not exist. | 227 228**示例**: 229 230```ts 231import { BusinessError } from '@kit.BasicServicesKit'; 232 233reminderAgentManager.getValidReminders((err: BusinessError, reminders: Array<reminderAgentManager.ReminderRequest>) => { 234 if (err.code) { 235 console.error("callback err code:" + err.code + " message:" + err.message); 236 } else { 237 console.log("callback, getValidReminders length = " + reminders.length); 238 for (let i = 0; i < reminders.length; i++) { 239 console.log("getValidReminders = " + reminders[i]); 240 console.log("getValidReminders, reminderType = " + reminders[i].reminderType); 241 const actionButton = reminders[i].actionButton || []; 242 for (let j = 0; j < actionButton.length; j++) { 243 console.log("getValidReminders, actionButton.title = " + actionButton[j]?.title); 244 console.log("getValidReminders, actionButton.type = " + actionButton[j]?.type); 245 } 246 console.log("getValidReminders, wantAgent.pkgName = " + reminders[i].wantAgent?.pkgName); 247 console.log("getValidReminders, wantAgent.abilityName = " + reminders[i].wantAgent?.abilityName); 248 console.log("getValidReminders, maxScreenWantAgent.pkgName = " + reminders[i].maxScreenWantAgent?.pkgName); 249 console.log("getValidReminders, maxScreenWantAgent.abilityName = " + reminders[i].maxScreenWantAgent?.abilityName); 250 console.log("getValidReminders, ringDuration = " + reminders[i].ringDuration); 251 console.log("getValidReminders, snoozeTimes = " + reminders[i].snoozeTimes); 252 console.log("getValidReminders, timeInterval = " + reminders[i].timeInterval); 253 console.log("getValidReminders, title = " + reminders[i].title); 254 console.log("getValidReminders, content = " + reminders[i].content); 255 console.log("getValidReminders, expiredContent = " + reminders[i].expiredContent); 256 console.log("getValidReminders, snoozeContent = " + reminders[i].snoozeContent); 257 console.log("getValidReminders, notificationId = " + reminders[i].notificationId); 258 console.log("getValidReminders, slotType = " + reminders[i].slotType); 259 } 260 } 261}); 262``` 263 264## reminderAgentManager.getValidReminders 265 266getValidReminders(): Promise\<Array\<ReminderRequest>> 267 268获取当前应用设置的所有[有效(未过期)的代理提醒](../../task-management/agent-powered-reminder.md#约束与限制)。使用promise异步回调。 269 270**系统能力**: SystemCapability.Notification.ReminderAgent 271 272**返回值**: 273 274| 类型 | 说明 | 275| -------- | -------- | 276| Promise\<Array\<[ReminderRequest](#reminderrequest)>> | Promise对象,返回当前应用设置的所有有效(未过期)的代理提醒。 | 277 278**错误码:** 279 280以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 281 282| 错误码ID | 错误信息 | 283| --------- | ------- | 284| 401 | If the input parameter is not valid parameter. | 285| 1700004 | The bundle name does not exist. | 286 287**示例**: 288 289```ts 290import { BusinessError } from '@kit.BasicServicesKit'; 291 292reminderAgentManager.getValidReminders().then((reminders: Array<reminderAgentManager.ReminderRequest>) => { 293 console.log("promise, getValidReminders length = " + reminders.length); 294 for (let i = 0; i < reminders.length; i++) { 295 console.log("getValidReminders = " + reminders[i]); 296 console.log("getValidReminders, reminderType = " + reminders[i].reminderType); 297 const actionButton = reminders[i].actionButton || []; 298 for (let j = 0; j < actionButton.length; j++) { 299 console.log("getValidReminders, actionButton.title = " + actionButton[j]?.title); 300 console.log("getValidReminders, actionButton.type = " + actionButton[j]?.type); 301 } 302 console.log("getValidReminders, wantAgent.pkgName = " + reminders[i].wantAgent?.pkgName); 303 console.log("getValidReminders, wantAgent.abilityName = " + reminders[i].wantAgent?.abilityName); 304 console.log("getValidReminders, maxScreenWantAgent.pkgName = " + reminders[i].maxScreenWantAgent?.pkgName); 305 console.log("getValidReminders, maxScreenWantAgent.abilityName = " + reminders[i].maxScreenWantAgent?.abilityName); 306 console.log("getValidReminders, ringDuration = " + reminders[i].ringDuration); 307 console.log("getValidReminders, snoozeTimes = " + reminders[i].snoozeTimes); 308 console.log("getValidReminders, timeInterval = " + reminders[i].timeInterval); 309 console.log("getValidReminders, title = " + reminders[i].title); 310 console.log("getValidReminders, content = " + reminders[i].content); 311 console.log("getValidReminders, expiredContent = " + reminders[i].expiredContent); 312 console.log("getValidReminders, snoozeContent = " + reminders[i].snoozeContent); 313 console.log("getValidReminders, notificationId = " + reminders[i].notificationId); 314 console.log("getValidReminders, slotType = " + reminders[i].slotType); 315 } 316}).catch((err: BusinessError) => { 317 console.error("promise err code:" + err.code + " message:" + err.message); 318}); 319``` 320 321## reminderAgentManager.cancelAllReminders 322 323cancelAllReminders(callback: AsyncCallback\<void>): void 324 325取消当前应用设置的所有代理提醒。使用callback异步回调。 326 327**系统能力**: SystemCapability.Notification.ReminderAgent 328 329**参数**: 330 331| 参数名 | 类型 | 必填 | 说明 | 332| -------- | -------- | -------- | -------- | 333| callback | AsyncCallback\<void> | 是 | 回调函数,取消代理提醒成功,err为undefined,否则为错误对象。 | 334 335**错误码:** 336 337以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 338 339| 错误码ID | 错误信息 | 340| --------- | ------- | 341| 401 | If the input parameter is not valid parameter. | 342| 1700004 | The bundle name does not exist. | 343 344**示例**: 345 346```ts 347import { BusinessError } from '@kit.BasicServicesKit'; 348 349reminderAgentManager.cancelAllReminders((err: BusinessError) =>{ 350 if (err.code) { 351 console.error("callback err code:" + err.code + " message:" + err.message); 352 } else { 353 console.log("cancelAllReminders callback") 354 } 355}); 356``` 357 358## reminderAgentManager.cancelAllReminders 359 360cancelAllReminders(): Promise\<void> 361 362取消当前应用设置的所有代理提醒。使用Promise异步回调。 363 364**系统能力**: SystemCapability.Notification.ReminderAgent 365 366**返回值**: 367 368| 类型 | 说明 | 369| -------- | -------- | 370| Promise\<void> | 无返回结果的Promise对象。 | 371 372**错误码:** 373 374以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 375 376| 错误码ID | 错误信息 | 377| --------- | ------- | 378| 401 | If the input parameter is not valid parameter. | 379| 1700004 | The bundle name does not exist. | 380 381**示例**: 382 383```ts 384import { BusinessError } from '@kit.BasicServicesKit'; 385 386reminderAgentManager.cancelAllReminders().then(() => { 387 console.log("cancelAllReminders promise") 388}).catch((err: BusinessError) => { 389 console.error("promise err code:" + err.code + " message:" + err.message); 390}); 391``` 392 393 394## reminderAgentManager.addNotificationSlot 395 396addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback\<void>): void 397 398添加通知槽。使用callback异步回调。 399 400**系统能力**: SystemCapability.Notification.ReminderAgent 401 402**参数**: 403 404| 参数名 | 类型 | 必填 | 说明 | 405| -------- | -------- | -------- | -------- | 406| slot | [NotificationSlot](../apis-notification-kit/js-apis-inner-notification-notificationSlot.md#notificationslot) | 是 | notificationManager\.slot实例,仅支持设置其notificationType属性。 | 407| callback | AsyncCallback\<void> | 是 | 回调函数,添加NotificationSlot成功时,err为undefined,否则err为错误对象。 | 408 409**错误码:** 410 411以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 412 413| 错误码ID | 错误信息 | 414| -------- | ---------------------------------------------- | 415| 401 | If the input parameter is not valid parameter. | 416 417**示例**: 418 419```ts 420import { notificationManager } from '@kit.NotificationKit'; 421import { BusinessError } from '@kit.BasicServicesKit'; 422 423let mySlot: notificationManager.NotificationSlot = { 424 notificationType: notificationManager.SlotType.SOCIAL_COMMUNICATION 425} 426 427reminderAgentManager.addNotificationSlot(mySlot, (err: BusinessError) => { 428 if (err.code) { 429 console.error("callback err code:" + err.code + " message:" + err.message); 430 } else { 431 console.log("addNotificationSlot callback"); 432 } 433}); 434``` 435 436 437## reminderAgentManager.addNotificationSlot 438 439addNotificationSlot(slot: NotificationSlot): Promise\<void> 440 441添加通知槽。使用promise异步回调。 442 443**系统能力**: SystemCapability.Notification.ReminderAgent 444 445**参数**: 446 447| 参数名 | 类型 | 必填 | 说明 | 448| -------- | -------- | -------- | -------- | 449| slot | [NotificationSlot](../apis-notification-kit/js-apis-inner-notification-notificationSlot.md#notificationslot) | 是 | notificationManager\.slot实例,仅支持设置其notificationType属性。 | 450 451**返回值**: 452 453| 类型 | 说明 | 454| -------- | -------- | 455| Promise\<void> | 无返回结果的Promise对象。 | 456 457**错误码:** 458 459以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 460 461| 错误码ID | 错误信息 | 462| -------- | ---------------------------------------------- | 463| 401 | If the input parameter is not valid parameter. | 464 465**示例**: 466 467```ts 468import { notificationManager } from '@kit.NotificationKit'; 469import { BusinessError } from '@kit.BasicServicesKit'; 470 471let mySlot: notificationManager.NotificationSlot = { 472 notificationType: notificationManager.SlotType.SOCIAL_COMMUNICATION 473} 474reminderAgentManager.addNotificationSlot(mySlot).then(() => { 475 console.log("addNotificationSlot promise"); 476}).catch((err: BusinessError) => { 477 console.error("promise err code:" + err.code + " message:" + err.message); 478}); 479``` 480 481 482## reminderAgentManager.removeNotificationSlot 483 484removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback\<void>): void 485 486删除目标通知槽,使用callback异步回调。 487 488**系统能力**: SystemCapability.Notification.ReminderAgent 489 490**参数**: 491 492| 参数名 | 类型 | 必填 | 说明 | 493| -------- | -------- | -------- | -------- | 494| slotType | [notification.SlotType](../apis-notification-kit/js-apis-notification.md#slottype) | 是 | 通知渠道类型。 | 495| callback | AsyncCallback\<void> | 是 | 回调函数,当删除成功时,err为undefined,否则为错误对象。 | 496 497**错误码:** 498 499以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 500 501| 错误码ID | 错误信息 | 502| -------- | ---------------------------------------------- | 503| 401 | If the input parameter is not valid parameter. | 504 505**示例**: 506 507```ts 508import { notificationManager } from '@kit.NotificationKit'; 509import { BusinessError } from '@kit.BasicServicesKit'; 510 511reminderAgentManager.removeNotificationSlot(notificationManager.SlotType.CONTENT_INFORMATION, 512 (err: BusinessError) => { 513 if (err.code) { 514 console.error("callback err code:" + err.code + " message:" + err.message); 515 } else { 516 console.log("removeNotificationSlot callback"); 517 } 518}); 519``` 520 521 522## reminderAgentManager.removeNotificationSlot 523 524removeNotificationSlot(slotType: notification.SlotType): Promise\<void> 525 526删除目标通知槽,使用Promise异步回调。 527 528**系统能力**: SystemCapability.Notification.ReminderAgent 529 530**参数**: 531 532| 参数名 | 类型 | 必填 | 说明 | 533| -------- | -------- | -------- | -------- | 534| slotType | [notification.SlotType](../apis-notification-kit/js-apis-notification.md#slottype) | 是 | 通知渠道类型。 | 535 536**返回值**: 537 538| 类型 | 说明 | 539| -------- | -------- | 540| Promise\<void> | 无返回结果的Promise对象。 | 541 542**错误码:** 543 544以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 545 546| 错误码ID | 错误信息 | 547| -------- | ---------------------------------------------- | 548| 401 | If the input parameter is not valid parameter. | 549 550**示例**: 551 552```ts 553import { notificationManager } from '@kit.NotificationKit'; 554import { BusinessError } from '@kit.BasicServicesKit'; 555 556reminderAgentManager.removeNotificationSlot(notificationManager.SlotType.CONTENT_INFORMATION).then(() => { 557 console.log("removeNotificationSlot promise"); 558}).catch((err: BusinessError) => { 559 console.error("promise err code:" + err.code + " message:" + err.message); 560}); 561``` 562 563## reminderAgentManager.getAllValidReminders<sup>12+</sup> 564 565getAllValidReminders(): Promise\<Array\<ReminderInfo>> 566 567获取当前应用设置的所有[有效(未过期)的代理提醒](../../task-management/agent-powered-reminder.md#约束与限制)。使用promise异步回调。 568 569**系统能力**: SystemCapability.Notification.ReminderAgent 570 571**返回值**: 572 573| 类型 | 说明 | 574| ------------------------------------------------- | ------------------------------------------------------------ | 575| Promise\<Array\<[ReminderInfo](#reminderinfo12)>> | Promise对象,返回当前应用设置的所有有效(未过期)的代理提醒。 | 576 577**错误码:** 578 579以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。 580 581| 错误码ID | 错误信息 | 582| -------- | ------------------ | 583| 201 | Permission denied. | 584 585**示例**: 586 587```ts 588import { BusinessError } from '@kit.BasicServicesKit'; 589 590reminderAgentManager.getAllValidReminders().then((reminders: Array<reminderAgentManager.ReminderInfo>) => { 591 console.log("promise, getAllValidReminders length = " + reminders.length); 592 for (let i = 0; i < reminders.length; i++) { 593 console.log("getAllValidReminders, reminderId = " + reminders[i].reminderId); 594 console.log("getAllValidReminders, reminderType = " + reminders[i].reminderReq.reminderType); 595 const actionButton = reminders[i].reminderReq.actionButton || []; 596 for (let j = 0; j < actionButton.length; j++) { 597 console.log("getAllValidReminders, actionButton.title = " + actionButton[j]?.title); 598 console.log("getAllValidReminders, actionButton.type = " + actionButton[j]?.type); 599 } 600 console.log("getAllValidReminders, wantAgent.pkgName = " + reminders[i].reminderReq.wantAgent?.pkgName); 601 console.log("getAllValidReminders, wantAgent.abilityName = " + reminders[i].reminderReq.wantAgent?.abilityName); 602 console.log("getAllValidReminders, maxScreenWantAgent.pkgName = " + reminders[i].reminderReq.maxScreenWantAgent?.pkgName); 603 console.log("getAllValidReminders, maxScreenWantAgent.abilityName = " + reminders[i].reminderReq.maxScreenWantAgent?.abilityName); 604 console.log("getAllValidReminders, ringDuration = " + reminders[i].reminderReq.ringDuration); 605 console.log("getAllValidReminders, snoozeTimes = " + reminders[i].reminderReq.snoozeTimes); 606 console.log("getAllValidReminders, timeInterval = " + reminders[i].reminderReq.timeInterval); 607 console.log("getAllValidReminders, title = " + reminders[i].reminderReq.title); 608 console.log("getAllValidReminders, content = " + reminders[i].reminderReq.content); 609 console.log("getAllValidReminders, expiredContent = " + reminders[i].reminderReq.expiredContent); 610 console.log("getAllValidReminders, snoozeContent = " + reminders[i].reminderReq.snoozeContent); 611 console.log("getAllValidReminders, notificationId = " + reminders[i].reminderReq.notificationId); 612 console.log("getAllValidReminders, slotType = " + reminders[i].reminderReq.slotType); 613 } 614}).catch((err: BusinessError) => { 615 console.error("promise err code:" + err.code + " message:" + err.message); 616}); 617``` 618 619## reminderAgentManager.addExcludeDate<sup>12+</sup> 620 621addExcludeDate(reminderId: number, date: Date): Promise\<void> 622 623为指定id的周期性的日历提醒,添加不提醒日期(如每天提醒的日历,设置周二不提醒)。使用Promise异步回调。 624 625**系统能力**: SystemCapability.Notification.ReminderAgent 626 627**参数**: 628 629| 参数名 | 类型 | 必填 | 说明 | 630| ---------- | ------ | ---- | ---------------------------------- | 631| reminderId | number | 是 | 需要添加不提醒日期的周期性日历id。 | 632| date | Date | 是 | 不提醒的日期。 | 633 634**返回值**: 635 636| 类型 | 说明 | 637| -------------- | ------------------------- | 638| Promise\<void> | 无返回结果的Promise对象。 | 639 640**错误码:** 641 642以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 643 644| 错误码ID | 错误信息 | 645| -------- | ---------------------------------------------- | 646| 201 | Permission denied. | 647| 401 | If the input parameter is not valid parameter. | 648| 1700003 | The reminder does not exist. | 649 650**示例**: 651 652```ts 653import { BusinessError } from '@kit.BasicServicesKit'; 654 655let reminderId: number = 1; 656let date = new Date(); 657reminderAgentManager.addExcludeDate(reminderId, date).then(() => { 658 console.log("addExcludeDate promise"); 659}).catch((err: BusinessError) => { 660 console.error("promise err code:" + err.code + " message:" + err.message); 661}); 662``` 663 664## reminderAgentManager.deleteExcludeDates<sup>12+</sup> 665 666deleteExcludeDates(reminderId: number): Promise\<void> 667 668为指定id的周期性的日历提醒,删除设置的所有不提醒日期。使用Promise异步回调。 669 670**系统能力**: SystemCapability.Notification.ReminderAgent 671 672**参数**: 673 674| 参数名 | 类型 | 必填 | 说明 | 675| ---------- | ------ | ---- | ---------------------------------- | 676| reminderId | number | 是 | 需要删除不提醒日期的周期性日历id。 | 677 678**返回值**: 679 680| 类型 | 说明 | 681| -------------- | ------------------------- | 682| Promise\<void> | 无返回结果的Promise对象。 | 683 684**错误码:** 685 686以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 687 688| 错误码ID | 错误信息 | 689| -------- | ---------------------------- | 690| 201 | Permission denied. | 691| 1700003 | The reminder does not exist. | 692 693**示例**: 694 695```ts 696import { BusinessError } from '@kit.BasicServicesKit'; 697 698let reminderId: number = 1; 699reminderAgentManager.deleteExcludeDates(reminderId).then(() => { 700 console.log("deleteExcludeDates promise"); 701}).catch((err: BusinessError) => { 702 console.error("promise err code:" + err.code + " message:" + err.message); 703}); 704``` 705 706## reminderAgentManager.getExcludeDates<sup>12+</sup> 707 708getExcludeDates(reminderId: number): Promise\<Array\<Date>> 709 710为指定id的周期性的日历提醒,查询设置的所有不提醒日期。使用Promise异步回调。 711 712**系统能力**: SystemCapability.Notification.ReminderAgent 713 714**参数**: 715 716| 参数名 | 类型 | 必填 | 说明 | 717| ---------- | ------ | ---- | ---------------------------------- | 718| reminderId | number | 是 | 需要查询不提醒日期的周期性日历id。 | 719 720**返回值**: 721 722| 类型 | 说明 | 723| ---------------------- | --------------------------------- | 724| Promise\<Array\<Date>> | Promise对象。返回特定日历设置的所有不提醒日期。 | 725 726**错误码:** 727 728以下错误码的详细介绍请参见[reminderAgentManager错误码](errorcode-reminderAgentManager.md)和[通用错误码](../errorcode-universal.md)。 729 730| 错误码ID | 错误信息 | 731| -------- | ---------------------------- | 732| 201 | Permission denied. | 733| 1700003 | The reminder does not exist. | 734 735**示例**: 736 737```ts 738import { BusinessError } from '@kit.BasicServicesKit'; 739 740let reminderId: number = 1; 741reminderAgentManager.getExcludeDates(reminderId).then((dates) => { 742 console.log("getExcludeDates promise length: " + dates.length); 743 for (let i = 0; i < dates.length; i++) { 744 console.log("getExcludeDates promise date is: " + dates[i].toString()); 745 } 746}).catch((err: BusinessError) => { 747 console.error("promise err code:" + err.code + " message:" + err.message); 748}); 749``` 750 751## ActionButtonType 752 753提醒上的按钮的类型。 754 755**系统能力**:SystemCapability.Notification.ReminderAgent 756 757| 名称 | 值 | 说明 | 758| -------- | -------- | -------- | 759| ACTION_BUTTON_TYPE_CLOSE | 0 | 表示关闭提醒的按钮。 | 760| ACTION_BUTTON_TYPE_SNOOZE | 1 | 表示延时提醒的按钮,提醒次数和间隔通过 [ReminderRequest](#reminderrequest) 中snoozeTimes和timeInterval设置。 | 761 762## ReminderType 763 764提醒的类型。 765 766**系统能力**:SystemCapability.Notification.ReminderAgent 767 768| 名称 | 值 | 说明 | 769| -------- | -------- | -------- | 770| REMINDER_TYPE_TIMER | 0 | 表示提醒类型:倒计时。 | 771| REMINDER_TYPE_CALENDAR | 1 | 表示提醒类型:日历。 | 772| REMINDER_TYPE_ALARM | 2 | 表示提醒类型:闹钟。 | 773 774 775## ActionButton 776 777弹出的提醒中按钮的类型和标题。 778 779**系统能力**:SystemCapability.Notification.ReminderAgent 780 781| 名称 | 类型 | 必填 | 说明 | 782| -------- | -------- | -------- | -------- | 783| title | string | 是 | 按钮显示的标题。 | 784| titleResource<sup>11+</sup> | string | 否 | 标题的资源ID,用于切换系统语言后读取对应标题信息。 | 785| type | [ActionButtonType](#actionbuttontype) | 是 | 按钮的类型。 | 786 787 788## WantAgent 789 790跳转目标的ability信息。 791 792**系统能力**:SystemCapability.Notification.ReminderAgent 793 794 795| 名称 | 类型 | 必填 | 说明 | 796| -------- | -------- | -------- | -------- | 797| pkgName | string | 是 | 指明跳转目标的包名。 | 798| abilityName | string | 是 | 指明跳转目标的ability名称。 | 799| parameters<sup>12+</sup> | Record\<string, Object> | 否 | 需要传递到目标的参数。 | 800| uri<sup>12+</sup> | string | 否 | 指明跳转目标的uri信息。 | 801 802 803## MaxScreenWantAgent 804 805通知中心弹出提醒时,全屏显示自动拉起目标的ability信息。该接口为预留接口,暂不支持使用。 806 807**系统能力**:SystemCapability.Notification.ReminderAgent 808 809| 名称 | 类型 | 必填 | 说明 | 810| -------- | -------- | -------- | -------- | 811| pkgName | string | 是 | 指明提醒到达时自动拉起的目标包名(如果设备在使用中,则只弹出通知横幅框)。 | 812| abilityName | string | 是 | 指明提醒到达时自动拉起的目标ability名(如果设备在使用中,则只弹出通知横幅框)。 | 813 814 815## ReminderRequest 816 817代理提醒对象,用于设置提醒类型、响铃时长等具体信息。 818 819**系统能力**:SystemCapability.Notification.ReminderAgent 820 821| 名称 | 类型 | 必填 | 说明 | 822| -------- | -------- | -------- | -------- | 823| reminderType | [ReminderType](#remindertype) | 是 | 指明代理提醒类型。 | 824| actionButton | [[ActionButton?, ActionButton?, ActionButton?]](#actionbutton) | 否 | 弹出的提醒通知中显示的按钮。<br>-普通应用:最多支持两个按钮。<br>-系统应用:API9最多支持两个按钮,在API10开始最多支持三个按钮。 | 825| wantAgent | [WantAgent](#wantagent) | 否 | 点击通知后需要跳转的目标ability信息。 | 826| maxScreenWantAgent | [MaxScreenWantAgent](#maxscreenwantagent) | 否 | 提醒到达时,全屏显示自动拉起目标的ability信息。如果设备正在使用中,则弹出一个通知横幅框。 <br> 说明:该接口为预留接口,暂不支持使用。| 827| ringDuration | number | 否 | 指明响铃时长(单位:秒),默认1秒。 | 828| snoozeTimes | number | 否 | 指明延时提醒次数,默认0次(不适用于倒计时提醒类型)。 | 829| timeInterval | number | 否 | 执行延时提醒间隔(单位:秒),最少5分钟(不适用于倒计时提醒类型)。 | 830| title | string | 否 | 指明提醒标题。 | 831| content | string | 否 | 指明提醒内容。 | 832| expiredContent | string | 否 | 指明提醒过期后需要显示的内容。 | 833| snoozeContent | string | 否 | 指明延时提醒时需要显示的内容(不适用于倒计时提醒类型)。 | 834| notificationId | number | 否 | 指明提醒使用的通知的id号,需开发者传入,相同id号的提醒会覆盖。 | 835| groupId<sup>11+</sup> | string | 否 | 指明提醒使用相同的组id。相同组id中,一个提醒被点击不在提醒后,组内其他提醒也会被取消。 | 836| slotType | [notification.SlotType](../apis-notification-kit/js-apis-notificationManager.md#slottype) | 否 | 指明提醒的通道渠道类型。 | 837| tapDismissed<sup>10+</sup> | boolean | 否 | 通知是否自动清除,具体请参考[NotificationRequest.tapDismissed](../apis-notification-kit/js-apis-inner-notification-notificationRequest.md#notificationrequest)。 | 838| autoDeletedTime<sup>10+</sup> | number | 否 | 自动清除的时间,具体请参考[NotificationRequest.autoDeletedTime](../apis-notification-kit/js-apis-inner-notification-notificationRequest.md#notificationrequest)。 | 839| snoozeSlotType<sup>11+</sup> | [notification.SlotType](../apis-notification-kit/js-apis-notificationManager.md#slottype) | 否 | 指明延时提醒的通道渠道类型(不适用于倒计时提醒类型)。 | 840| customRingUri<sup>11+</sup> | string | 否 | 指明自定义提示音的uri,提示音文件必须放在resources/rawfile目录下,支持m4a、aac、mp3、ogg、wav、flac、amr等格式。 | 841 842## ReminderRequestCalendar 843 844ReminderRequestCalendar extends ReminderRequest 845 846日历实例对象,用于设置提醒的时间。 847 848**系统能力**:SystemCapability.Notification.ReminderAgent 849 850| 名称 | 类型 | 必填 | 说明 | 851| -------- | -------- | -------- | -------- | 852| dateTime | [LocalDateTime](#localdatetime) | 是 | 指明提醒的目标时间。 | 853| repeatMonths | Array\<number> | 否 | 指明重复提醒的月份。 | 854| repeatDays | Array\<number> | 否 | 指明重复提醒的日期。 | 855| daysOfWeek<sup>11+</sup> | Array\<number> | 否 | 指明每周哪几天需要重复提醒。范围为周一到周日,对应数字为1到7。 | 856| endDateTime<sup>12+</sup> | [LocalDateTime](#localdatetime) | 否 | 指明提醒的结束时间。 | 857 858 859## ReminderRequestAlarm 860 861ReminderRequestAlarm extends ReminderRequest 862 863闹钟实例对象,用于设置提醒的时间。 864 865**系统能力**:SystemCapability.Notification.ReminderAgent 866 867| 名称 | 类型 | 必填 | 说明 | 868| -------- | -------- | -------- | -------- | 869| hour | number | 是 | 指明提醒的目标时刻。 | 870| minute | number | 是 | 指明提醒的目标分钟。 | 871| daysOfWeek | Array\<number> | 否 | 指明每周哪几天需要重复提醒。范围为周一到周日,对应数字为1到7。 | 872 873 874## ReminderRequestTimer 875 876ReminderRequestTimer extends ReminderRequest 877 878倒计时实例对象,用于设置提醒的时间。 879 880**系统能力**:SystemCapability.Notification.ReminderAgent 881 882| 名称 | 类型 | 必填 | 说明 | 883| -------- | -------- | -------- | -------- | 884| triggerTimeInSeconds | number | 是 | 指明倒计时的秒数。 | 885 886 887## LocalDateTime 888 889用于日历类提醒设置时指定时间信息。 890 891**系统能力**:SystemCapability.Notification.ReminderAgent 892 893| 名称 | 类型 | 必填 | 说明 | 894| -------- | -------- | -------- | -------- | 895| year | number | 是 | 年 | 896| month | number | 是 | 月,取值范围是[1, 12]。 | 897| day | number | 是 | 日,取值范围是[1, 31]。 | 898| hour | number | 是 | 时,取值范围是[0, 23]。 | 899| minute | number | 是 | 分,取值范围是[0, 59]。 | 900| second | number | 否 | 秒,取值范围是[0, 59]。 | 901 902## ReminderInfo<sup>12+</sup> 903 904代理提醒信息,包含 ReminderRequest 和 ReminderId。 905 906**系统能力**:SystemCapability.Notification.ReminderAgent 907 908| 名称 | 类型 | 只读 | 可选 | 说明 | 909| ----------- | ----------------------------------- | ---- | ---- | -------------------- | 910| reminderId | number | 否 | 否 | 发布提醒后返回的id。 | 911| reminderReq | [ReminderRequest](#reminderrequest) | 否 | 否 | 代理提醒对象。 | 912 913