Badge概述
所谓Badge,原本是IOS上的一个效果,指的是当手机接收到推送消息后,会在手机桌⾯面对应的App图标的右上角显示一个未读消息数的提⽰。
而在Android系统中,手机桌面的管理是在系统应用Launcher上实现的,然而在原生的Android系统中,Launcher是不提供改功能效果的。但是,由于Android的AOSP(Android开放源码项目)代码能够被各大ROM厂商修改,所以很多被修改的ROM都可以支持这种Badge效果。
基本原理
都是监听App发出的广播,然后根据广播内容进行Launcher层面的快捷方式的修改。
难点
由于没有Android原生系统的支持,所以ROM厂商的实现方式很不统一,基本都是自己做自己的。因此,关键是要找到这些Launcher修改的广播(厂家提供的私有API)。
不同厂商API
三星
String launcherClassName = getLauncherClassName(context); if (launcherClassName == null) { return; } 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", launcherClassName); context.sendBroadcast(intent);华为
String launcherClassName = getLauncherClassName(context); if (launcherClassName != null) { Bundle extra = new Bundle(); extra.putString("package", ct.getPackageName()); extra.putString("class", launcherClassNam

本文介绍了Android中的Badge效果,源于iOS,用于显示未读消息数。由于原生Android不支持,该功能主要由各厂商ROM实现。内容涉及Badge的基本原理,实现难点在于不同厂商的API不统一,需要监听广播并修改Launcher快捷方式。文章列举了部分厂商如三星、华为、MIUI等的实现方法,并提及了权限声明的重要性。
最低0.47元/天 解锁文章
2468

被折叠的 条评论
为什么被折叠?



