结论:兼容性问题太多,除了华为,大部分厂家基本上可以理解为不可用。
1 参考代码
1.1 github
1.2 CSDN
2 小米
MIUI 6桌面角标开源代码简介 官方文档
MIUI 6 至 MIUI 10 桌面角标适配 官方说明
注意:通知栏有通知存在才会显示角标,滑掉通知栏则角标消失。常驻或者进度类通知栏,也不会有角标。
3 华为 官方说明
3.1 权限声明
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE "/>
3.2 代码示例
public void setBadgeNum( int num){
try{
Bundle bunlde =new Bundle();
bunlde.putString("package", "com.test.badge"); // com.test.badge is your package name
bunlde.putString("class", "com.test. badge.MainActivity"); // com.test. badge.MainActivity
is your apk main activity
bunlde.putInt("badgenumber",num);
this.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/ba
dge/"), "change_badge", null, bunlde);
}catch(Exception e){
mIsSupportedBade = false;
}
}
4 OPPO 开放平台 VIVO开放平台
除了头部应用名单加白外,其他基本上不可以用。申请渠道也找不到。
5 ZUK 联想开发者平台
5.1 权限声明 (设置 > 通知和状态栏 > 应用角标管理)
<uses-permission android:name="android.permission.READ_APP_BADGE"/>
5.2 代码示例
系统桌面和应用程序使用自定义的ContentProvider来实现对应用程序角标数据的管理,包括插入、更新、删除、查找等操作。具体流程如下:
应用程序调用ContentProvider 的接口来通知应用程序角标数据变化;
ContentProvider 更新应用程序角标数据,并通知系统桌面应用;
系统桌面应用对应用程序图标进行角标更新。