Android 阵营各厂商机型角标开放能力不同,移动推送对推送角标的支持程度做以下说明,供开发者参考使用。
厂商 | 是否支持角标/红点显示 | 是否需要配置 | 适配说明 |
---|---|---|---|
华为/荣耀 | 支持角标 | 是 | 请参考下文 华为手机角标适配说明 |
小米 | 支持角标 | 否 | 遵从系统默认逻辑,感应通知栏通知数目,按 1 自动增减 |
魅族 | 支持红点 | 否 | 遵从系统默认逻辑,仅支持红点展示,有通知则展示,无则不展示 |
OPPO | 支持红点 | 否 | 圆点展示需由用户在通知设置中手动开启,遵从系统默认逻辑,有通知则展示,无则不展示; 数值展示只对指定应用开启,例如 QQ、微信,需向官方进行权限申请,暂无明确适配说明 |
vivo | 支持角标 | 是 | 请参考下文 vivo 手机角标适配说明 |
您可以通过移动推送控制台或 Push API 设置服务端下发角标:
直接设置角标数值;当前支持华为、OPPO、vivo 手机角标展示,其中 OPPO 需另外向厂商申请角标展示权限。
/**
* @param context 应用上下文
* @param setNum 修改角标值
* @since v1.2.0.1
*/
XGPushConfig.setBadgeNum(Context context, int setNum);
示例:在收到透传消息时,调用 XGPushConfig.setBadgeNum(context, 8)
设置角标数值为 8。
设置手机应用角标归零;当前支持华为、OPPO、vivo 手机角标展示,其中 OPPO 需另外向厂商申请角标展示权限。
/**
* @param context 应用上下文
* @since v1.2.0.1
*/
XGPushConfig.resetBadgeNum(Context context);
示例:在透传消息已阅读或打开应用时,调用 XGPushConfig.resetBadgeNum(context)
清除角标数值。
注意:因厂商通道抵达的通知不支持通知清除时角标数值自动减1,建议您在恰当时机调用此接口来清除角标数值,如重新从桌面打开应用时。
华为手机角标展示支持 EMUI 8.0 及以上手机。
受限于华为手机角标能力的开放程度,在不同的推送场景下角标功能有所不同,详见下表。请按照指导方式使用华为手机角标功能。
推送形式 | 角标能力 | 实现方式 |
---|---|---|
华为通道通知 | 支持角标自动加1、直接设置或不变,支持通知点击的自动减1,不支持通知清除的自动减1 | 通过管理台或 Push API 关键字设置 |
移动推送自建通道通知 | 支持角标自动加1、直接设置或不变,支持通知点击/清除的自动减1 | 通过管理台或 Push API 关键字设置 |
透传消息 | 开发者自行处理设置、加减逻辑 | 调用移动推送SDK 开放接口 |
为能实现角标修改的正确效果,请首先为应用添加华为手机上的角标读写权限,具体实现为在应用 AndroidManifest.xml 文件的 manifest 标签下添加以下权限配置:
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<!-- 兼容荣耀手机 -->
<uses-permission android:name="com.hihonor.android.launcher.permission.CHANGE_BADGE" />
请一定先在管理台华为通道开启及参数配置处填写桌面图标对应的应用入口 Activity 类,如“com.test.badge.MainActivity”,否则华为通道下发通知的角标设置将不生效。
请将打包完成的 apk 文件拖入 AndroidStudio,进入其中的 AndroidManifest 文件,搜索关键字 “android.intent.category.LAUNCHER”,所属的 activity.name 属性即为启动类名称。
华为手机支持角标自动增减1,接口如下:
/**
* 华为手机角标修改接口
*
* @param context 应用上下文
* @param changeNum 改变的数字,修改效果为累加;例如先前角标为5,入参为1,则角标被设置为6。
* 当前支持 1:角标加1;-1:角标-1
*/
XGPushConfig.changeHuaweiBadgeNum(Context context, int changeNum);
示例:在收到透传消息时,调用 XGPushConfig.changeHuaweiBadgeNum(context, 1)
实现角标加1;在需要清除该消息的角标时调用 XGPushConfig.changeHuaweiBadgeNum(context, -1)
实现角标减1。
受限于 vivo 手机角标能力的开放程度,当前 vivo 手机角标仅支持直接设置角标数值,不支持自动增减;仅支持移动推送自建通道下发的通知。
推送形式 | 角标能力 | 实现方式 |
---|---|---|
vivo 通道通知 | 不支持 | 不支持 |
移动推送自建通道通知 | 支持角标直接设置或不变,不支持自动增减 | 通过管理台或 Push API 关键字设置 |
透传消息 | 开发者自行处理设置逻辑 | 调用移动推送SDK 开放接口 |
为能实现角标修改的正确效果,请首先为应用添加 vivo 手机上的角标读写权限,具体实现为在应用 AndroidManifest.xml 文件的 manifest 标签下添加以下权限配置:
<uses-permission android:name="com.vivo.notification.permission.BADGE_ICON" />
接入成功后,“桌面图标角标”默认关闭,需要用户手动开启。
开启路径:【设置】>【通知与状态栏】>【应用通知管理】>【应用名称】>【桌面图标角标】。
未成功接入“桌面图标角标”的应用,无“桌面图标角标”选项。
说明:视 OS 版本差异,“桌面图标角标”名称可能为“应用图标标记”或“桌面角标”。
本页内容是否解决了您的问题?