文档详情

Android为应用添加数字角标的简单实现.pdf

发布:2022-09-22约2.13千字共1页下载文档
文本预览下载声明
Android为为应应⽤⽤添添加加数数字字⾓⾓标标的的简简单单实实现现 ​⾓标,英语是badge,也就是“徽章,像章,奖章; 象征,标记”的意思。 果图 可以看到图中的环信单聊这个app右上⾓的红⾊的圆圈,⾥⾯有6这个数字的,就是⼀种⾓标。 ⼀般来说,应⽤的⾓标是⽤来标记有多少条提醒 (Notification)没读 (unread),⼀旦点击提⽰进应⽤阅读了,⾓标也会消 失。 ⼀些必要的说明 ⾓标原本是苹果的iOS中的东西,Android原⽣并不⽀持⾓标,因为Google的意思是让⼤家⽤Notification (提⽰栏)即可,不 过⽆妨,厉害的Android第三⽅⼚商可以通过在⾃定义的Launcher (启动器)中操作来实现添加⾓标。 原理 添加⾓标的原理就是发送⼀个Broadcast (⼴播),在⼴播的Intent中指定需要被添加⾓标的应⽤的packageName (包 名),className (类名),count (⾓标数⽬)。当然了,不同⼚商的⼿机的⾓标操作的Intent的action是不⼀样的。 在Android anifest.xml中添加读取和写⼊⾓标的权限: uses-permission android:name=com.sec .android.prov ider.badge.permission.REA D / uses-permission android:name=com.sec .android.prov ider.badge.permission.WRITE / 设置⾓标和清除⾓标的⼯具类 public class BadgeUtils { private static final String INTENT_ACTION = android.intent .action.BA DGE_COUNT_ UPDATE; private static final String INTENT_ EXTRA_BA DGE_COUNT = badge_count; private static final String INTENT_ EXTRA_ PACKAGENA E = badge_count_package_name; private static final String INTENT_ EXTRA_ACTIV ITY_NA E = badge_count_class_name; //设置⾓标 public static void set BadgeCount(Context context , int badgeCount) { Intent intent = new Intent(INTENT_ACTION); intent .put Extra(INTENT_ EXTRA_BA DGE_COUNT, badgeCount); intent .put Extra(INTENT_ EXTRA_ PACKAGENA E, getComponent Name(context).get PackageName()); intent .put Extra(INTENT_ EXTRA_ACTIV ITY_NA E, getComponent Name(context).getClassName()); context .sendBroadcast(intent); } //清除⾓标 public static void removeBadge(Context context){ set BadgeCount(context ,0); } //获取Component Name private static Component Name getComponent Name(Context context) { return context .getApplicationContext().get Package anager() .get LaunchIntent ForPacka
显示全部
相似文档