华为桌面未读角标

角标功能支持平台:EMUI4.1及以上,桌面版本:6.3.29

  1. 声明权限,如下:

  1. 在需要进行角标显示地方,采用如下方法传递数据给华为桌面应用
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;
    }
}
  1. 特殊情形考虑:

对于第三应用打开和退出时,是否还继续显示角标取决应用传递的值(badgenumber为0时,不显示角标;badgenumber大于0时,显示角标)

当第三方应用package和class发生变化时,需传递该变化后的信息

你可能感兴趣的:(华为桌面未读角标)