角标功能支持平台:EMUI4.1及以上,桌面版本:6.3.29
- 声明权限,如下:
<uses-permission android:name=" com.huawei.android.launcher.permission. CHANGE_BADGE"/>
- 在需要进行角标显示地方,采用如下方法传递数据给华为桌面应用
Bundle extra =new Bundle();
extra.putString("package", "xxxxxx");
extra.putString("class", "yyyyyyy");
extra.putInt("badgenumber", i);
context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra);
关键参数说明【红色部分为填充参数】
package:应用包名
class:桌面图标对应的应用入口Activity类
badgenumber:角标数字
示例:
/*
* 是否支持华为徽章
* */
private boolean isHuaweiSupport = true;
if (isHuaweiSupport) {
huaweiShortCut(num);
}
//华为显示角标
private void huaweiShortCut(int aCount) {
try {
Bundle extra = new Bundle();
extra.putString("package", x.app().getApplicationContext().getPackageName());
extra.putString("class", Utils.AppUtils.getLaunchActivityName());
extra.putInt("badgenumber", aCount);
x.app().getApplicationContext().getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra);
} catch (Exception aE) {
isHuaweiSupport = false;
}
}
- 特殊情形考虑:
对于第三应用打开和退出时,是否还继续显示角标取决应用传递的值(badgenumber为0时,不显示角标;badgenumber大于0时,显示角标)
当第三方应用package和class发生变化时,需传递该变化后的信息