文档管理中心
指南开发指导书

华为桌面角标开发指导书

1. 概述

角标是华为桌面提供给各应用显示未读消息用的,会在应用图标右上角绘制一张消息条数的图标。

1.1 架构

下图展示了华为桌面角标SDK 的架构。

1.2 支持平台

系统版本:EMUI4.1 及以上

桌面版本:6.3.29

支持设备:华为设备

2. 角标功能开发指南

1、声明权限

  1. < uses - permission android: name = "android.permission.INTERNET" / >
  2. <
  3. uses - permission android: name = "com.huawei.android.launcher.permission.CHANGE_BADGE " / >

2、在需要进行角标显示地方,采用如下方法传递数据给华为桌面应用。

  1. Bundle extra = new Bundle();
  2. extra.putString("package", "xxxxxx");
  3. extra.putString("class", "yyyyyyy");
  4. extra.putInt("badgenumber", i);
  5. context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra);

关键参数说明:

  • package:应用包名
  • class:桌面图标对应的应用入口Activity类
  • badgenumber:角标数字

示例:

  1. boolean mIsSupportedBade = true;
  2. if (mIsSupportedBade) {
  3. setBadgeNum(num);
  4. }
  5. /** set badge number*/
  6. public void setBadgeNum(int num) {
  7. try {
  8. Bundle bunlde = new Bundle();
  9. bunlde.putString("package", "com.test.badge"); // com.test.badge is your package name
  10. bunlde.putString("class", "com.test. badge.MainActivity"); // com.test. badge.MainActivity is your apk main activity
  11. bunlde.putInt("badgenumber", num);
  12. this.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, bunlde);
  13. } catch (Exception e) {
  14. mIsSupportedBade = false;
  15. }
  16. }

3、特殊情形考虑:

  1. 对于第三应用打开和退出时,是否还继续显示角标取决应用传递的值(badgenumber为0时,不显示角标;badgenumber大于0时,显示角标)。
  2. 当第三方应用package和class发生变化时,需传递该变化后的信息。

3. FAQ

[问题一]在调用角标接口前是否一定要事先获取桌面是否支持角标功能?
此功能为可选项,非必需操作。当桌面不支持角标功能时,接口会抛出异常,应用可以在调用接口的地方加上try … catch(Exception e) 语句以免程序崩溃。

搜索
请输入您想要搜索的关键词