1、小米角标:
MIUI6-MIUI11桌面应用角标适配方法
通过反射调用设置桌面角标,参考代码如下:
try {
Field field = notification.getClass().getDeclaredField(“extraNotification”);
Object extraNotification = field.get(notification);
Method method = extraNotification.getClass().getDeclaredMethod(“setMessageCount”, int.class);
method.invoke(extraNotification, mCount);
} catch (Exception e) {
e.printStackTrace();
}
MIUI12及以后桌面应用角标适配方法
由于Google屏蔽了hideAPI的反射调用,因此MIUI12及以后可以使用notification.number,可参照Android开发者文档 https://developer.android.google.cn/reference/android/app/Notification#number,参考代码如下:
Notification notification = new Notification.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle(textTitle)
.setContentText(textContent)
.setNumber(int number)
.build();
如何判断MIUI版本
可参考文档https://dev.mi.com/console/doc/detail?pId=1312,其中6.1节有具体方法说明。
桌面应用角标问题Q&A
https://dev.mi.com/console/doc/detail?pId=2321
2、华为角标:
需要在消息扩展里设置上应用入口activity,如demo是com.hyphenate.chatuidemo.ui.SplashActivity
// 设置自定义推送提示
JSONObject extObject = new JSONObject();
try {
extObject.put("em_huawei_push_badge_class", "com.hyphenate.chatuidemo.ui.SplashActivity");
} catch (JSONException e) {
e.printStackTrace();
}
// 将推送扩展设置到消息中
message.setAttribute("em_apns_ext", extObject);
3、vivo角标:
“桌面图标角标”默认关闭
接入成功后,“桌面图标角标”默认关闭,需要用户手动开启。
开启路径:“设置”-“通知与状态栏”-“应用通知管理”-应用名称-“桌面图标角标”。
未成功接入“桌面图标角标”的应用,无“桌面图标角标”选项。
备注:视OS版本差异,“桌面图标角标”名称可能为“应用图标标记”或“桌面角标”。
具体实现
a. 添加权限:
b. 应用在需要显示桌面角标的场景,通过广播将信息发送给vivoLauncher:
广播参数:
action:launcher.action.CHANGE_APPLICATION_NOTIFICATION_NUM
packageName:应用包名
className:主类名
notificationNum:未读消息数目
简单示例:
Intent intent = new Intent();
int missedCalls = 10;
intent.setAction("launcher.action.CHANGE_APPLICATION_NOTIFICATION_NUM");
intent.putExtra("packageName", "com.android.xxxx");
intent.putExtra("className", "com.android.xxxx.Mainxxxx");
intent.putExtra("notificationNum", missedCalls);
intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
sendBroadcast(intent);
注意:
在8.0上,还需要给Intent加上下面的flag
Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND
4、oppo角标:
需要申请Push角标功能
https://open.oppomobile.com/bbs/forum.php?mod=viewthread&tid=2448&extra=page%3D1&aid=11392
5、魅族角标:
不支持