HarmonyOS鸿蒙Next中接入代理提醒时提示:1700002 The number of reminders exceeds the limit

HarmonyOS鸿蒙Next中接入代理提醒时提示:1700002 The number of reminders exceeds the limit 【问题描述】:代理提醒权限已经申请通过,也重新生成profile文件了,还是报错The number of reminders exceeds the limit,使用的真机测试,也是用了手动签名。但是依旧报错。

【问题现象】:1700002,The number of reminders exceeds the limit

【版本信息】:API 18(HarmonyOS 5.1.0)

【复现代码】:不涉及

【尝试解决方案】:不涉及

13 回复

【解决方案】
当调用发布提醒接口时,提醒数量超出最大限制,可能原因和解决方案如下:

可能原因:

  • 因管控限制,普通应用如果没有代理提醒的使用权限,提醒数量为0。
  • 单个普通应用提醒数量不超过30个。
  • 从API version10开始,所有应用提醒数量总和不超过12000个。API version 9及之前的版本,提醒数量总和不超过2000个。

解决方案:

  1. 确认是否申请了代理提醒使用权限
  2. 权限申请通过后,在项目modlue.json5中配置权限声明:“requestPermissions”: [ { “name”: “ohos.permission.PUBLISH_AGENT_REMINDER”, “usedScene”: {“when”: “always”} } ]
  3. 按照开发指南,检查包名是否使用邮件申请权限的包名,检查提醒数量是否超过规定数量,及时删除不必要的提醒。

更多关于HarmonyOS鸿蒙Next中接入代理提醒时提示:1700002 The number of reminders exceeds the limit的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


根据解决方案排查了,还是报错The number of reminders exceeds the limit

尊敬的开发者您好,为了尽快解决您的问题,请您提供完整的hilog日志,以便我们进行分析和问题定位。

是手动签名配置有点问题,重新配置后,问题已解决。感谢老师支持

1700002 不只表示“真的创建了太多提醒”,也可能表示当前包名没有拿到有效代理提醒额度。建议按这个顺序排查:

  1. module.json5 是否声明 ohos.permission.PUBLISH_AGENT_REMINDER。
  2. 真机安装的包是否使用了重新生成后的 Profile 和同一签名。
  3. 卸载旧包后重新安装,避免旧 Profile/旧权限残留。
  4. 调用前先用 getValidReminders() 看当前有效提醒数量,超过 30 个要删除旧提醒。
  5. 确认通知权限已开启。

官方错误码说明:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-reminderagentmanager

HarmonyOS 对单个应用通过 ReminderAgentManager.publishReminder() 发布的提醒总数有严格限制(具体查阅官方文档,参考《reminderAgentManager错误码》)。如果你之前的测试代码反复发布提醒,或者业务逻辑中未对 reminderId 进行持久化管理和清理,就会导致计数爆满。

建议方案:

  1. 清理历史残留提醒(关键)

重启手机并不能清理代理提醒,它们保存在系统的持久化存储中。你需要通过代码卸载所有残留提醒。

import { reminderAgentManager } from '@kit.BasicServicesKit';

async function cleanAllReminders() {
  try {
    // 获取当前应用发布的所有提醒 ID
    const ids: number[] = await reminderAgentManager.getValidReminders();
    console.info(`Found ${ids.length} reminders to clean`);
    
    // 逐个卸载
    for (const id of ids) {
      await reminderAgentManager.cancelReminder(id);
    }
    console.info('All reminders cleaned successfully');
  } catch (err) {
    console.error(`Clean failed: ${JSON.stringify(err)}`);
  }
}
  1. 优化发布逻辑:先取消,再发布

在发布新提醒前,务必检查是否已存在同类型提醒,避免重复累积。可设置安全阈值,及时清理

使用的reminderAgentManager吧。参考《reminderAgentManager错误码》。有官方解释。

错误信息

The number of reminders exceeds the limit.

错误描述

当调用发布提醒接口时,提醒数量超出最大限制。

可能原因

  1. 因管控限制,普通应用如果没有代理提醒的使用权限,提醒数量为0。
  2. 单个普通应用提醒数量不超过30个。
  3. 从API version 10开始,所有应用提醒数量总和不超过12000个。API version 9及之前的版本,提醒数量总和不超过2000个。

处理步骤

  1. 首先,确认是否申请了代理提醒的使用权限
  2. 然后,在申请通过情况下,检查提醒数量是否超过规定数量,及时删除不必要的提醒。

确认证书那些文件都重新申请了,重构项目试试,还不行就提工单吧

只用重新生成profile是吧

不妨检查一下是否使用了其它的什么权限哦。。。

错误码1700002表示代理提醒数量超过上限(默认30个)。需先使用reminderAgentManager.queryActiveReminders()查询当前活跃提醒,然后通过removeReminder()移除不需要的提醒,再重新添加。

错误码1700002表示当前应用已注册的代理提醒数量达到系统上限(通常为30个),包括尚未触发或未手动取消的提醒。该限制与权限、签名或Profile无关,仅受应用内现存有效提醒数量影响。请检查是否重复添加了同一提醒,或之前创建的提醒未调用cancelReminder()/cancelAllReminders()及时释放。先清理不再需要的提醒即可继续注册新提醒。

回到顶部