没有标准的方法来实现这一点;索尼或三星等许多制造商已经在他们自己的 Android 定制中实现了它。
例如,在三星中,您必须使用 BADGE_COUNT_UPDATE 操作广播意图,让MainActivity
成为您的主要活动类并count
成为您要在应用程序图标中显示的数字,注意 0 将隐藏徽章:
Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
intent.putExtra("badge_count", count);
intent.putExtra("badge_count_package_name", context.getPackageName());
intent.putExtra("badge_count_class_name", MainActivity.class.getName());
context.sendBroadcast(intent);
索尼设备使用"com.sonyericsson.home.action.UPDATE_BADGE"
带有自定义附加功能的操作作为@Marcus Answered,因此您必须向"com.sonyericsson.home.permission.BROADCAST_BADGE"
您的应用清单添加权限,并且:
Intent intent = new Intent("com.sonyericsson.home.action.UPDATE_BADGE");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", MainActivity.class.getName());
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true);
intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", String.valueOf(count));
intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName());
context.sendBroadcast(intent);
注意:最好查询应用程序的数据 ( context.getPackageName()
, MainActivity.class.getName()
),而不是对其进行硬编码,以防万一您将来进行一些重构。