我们的 Android App 目前通过友盟推送发送通知。
在之前的小米系统版本中,我们可以通过通知中的角标数量参数区分不同类型的业务通知:
公告类通知
角标数量设置为 0
期望只展示通知,不刷新桌面 App 图标角标
表单类通知
角标数量设置为大于 0 的业务数量
例如当前有 5 条待处理表单,则设置角标数量为 5
期望桌面 App 图标角标直接显示为对应数量
该逻辑在之前的小米设备及系统版本上可以正常工作。
但是,在以下环境中测试时,角标数量参数疑似不再生效:
设备型号:小米 15
Android 版本:Android 16
系统版本:HyperOS 3
推送平台:友盟推送
通知类型:系统通知栏通知
build.grade中SDK:
// --- Umeng
api 'com.umeng.umsdk:common:9.9.1'
api 'com.umeng.umsdk:asms:1.8.7.2'
api 'com.umeng.umsdk:push:6.7.6'
// FCM UMeng Accs
api 'com.umeng.umsdk:fcm-umengaccs:2.2.0'
// 小米
api 'com.umeng.umsdk:xiaomi-umengaccs:2.3.0'
api 'com.umeng.umsdk:xiaomi-push:7.9.2'
// 華為
api 'com.umeng.umsdk:huawei-umengaccs:2.2.0'
api 'com.huawei.hms:push:6.13.0.301'
// Honor
api 'com.umeng.umsdk:honor-umengaccs:2.2.0'
api 'com.umeng.umsdk:honor-push:8.0.12.307'
当前实际表现
场景一:公告通知
发送公告通知时,我们将通知角标数量设置为 0。
预期结果:
通知正常展示在通知栏
桌面 App 图标角标不发生变化
实际结果:
通知正常展示
App 图标角标仍然自动 +1
也就是说,角标数量设置为 0 并没有阻止系统更新角标。
场景二:表单通知
发送表单通知时,我们将角标数量设置为指定的业务数量,例如 5。
预期结果:
通知正常展示
App 图标角标更新为 5
实际结果:
通知正常展示
App 图标角标没有更新为指定的 5
系统仍然只是在原角标基础上自动 +1
目前观察下来,HyperOS 3 似乎不再使用我们传入的角标数量,而是根据通知栏中新增的通知条数自动累加 App 角标。
期望确认的问题
想请友盟技术团队协助确认以下问题:
友盟推送目前是否已经适配 Android 16 / 小米 HyperOS 3 的应用角标数量控制?
在 HyperOS 3 上,友盟推送下发的角标数量参数是否仍然有效?
小米 HyperOS 3 是否已经限制第三方 App 设置精确的桌面角标数量,改为由系统根据当前活动通知数量自动计算?
如果公告通知不希望更新 App 角标,是否可以通过以下方式实现:
单独的 NotificationChannel
设置 setShowBadge(false)
友盟的厂商通道参数
小米推送对应的角标参数
其他友盟 SDK 配置
如果表单通知需要让 App 角标显示为业务侧指定数量,例如待办数量,而不是通知数量,HyperOS 3 上是否还有官方支持的实现方式?
该问题是在友盟 SDK 层、友盟厂商通道层,还是小米 HyperOS 3 系统策略层导致的?
如果友盟已有兼容版本或临时解决方案,希望能够提供:
建议使用的友盟 Push SDK 版本
对应的服务端推送参数
Android 客户端配置方式
小米厂商通道相关配置说明
目前的初步判断
从实际表现来看,HyperOS 3 可能将桌面 App 角标与通知中心内的活动通知数量进行了绑定,不再允许应用通过通知中的角标数量参数直接覆盖。
但目前无法确定该行为是:
HyperOS 3 的系统限制
小米厂商推送通道的参数变化
友盟 Push SDK 尚未适配
通知渠道角标配置导致
Android 16 通知机制变化导致
希望友盟技术团队能够协助确认。