国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android為應(yīng)用添加數(shù)字角標(biāo)的簡(jiǎn)單實(shí)現(xiàn)

2019-12-12 03:04:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

角標(biāo),英語(yǔ)是badge,也就是“徽章,像章,獎(jiǎng)?wù)拢?象征,標(biāo)記”的意思。

效果圖


可以看到圖中的環(huán)信單聊這個(gè)app右上角的紅色的圓圈,里面有6這個(gè)數(shù)字的,就是一種角標(biāo)。

一般來(lái)說(shuō),應(yīng)用的角標(biāo)是用來(lái)標(biāo)記有多少條提醒(Notification)沒(méi)讀(unread),一旦點(diǎn)擊提示進(jìn)應(yīng)用閱讀了,角標(biāo)也會(huì)消失。

一些必要的說(shuō)明

角標(biāo)原本是蘋果的iOS中的東西,Android原生并不支持角標(biāo),因?yàn)镚oogle的意思是讓大家用Notification(提示欄)即可,不過(guò)無(wú)妨,厲害的Android第三方廠商可以通過(guò)在自定義的Launcher(啟動(dòng)器)中操作來(lái)實(shí)現(xiàn)添加角標(biāo)。

原理

添加角標(biāo)的原理就是發(fā)送一個(gè)Broadcast(廣播),在廣播的Intent中指定需要被添加角標(biāo)的應(yīng)用的packageName(包名),className(類名),count(角標(biāo)數(shù)目)。當(dāng)然了,不同廠商的手機(jī)的角標(biāo)操作的Intent的action是不一樣的。

在AndroidManifest.xml中添加讀取和寫入角標(biāo)的權(quán)限:

<uses-permission android:name="com.sec.android.provider.badge.permission.READ" /><uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />

設(shè)置角標(biāo)和清除角標(biāo)的工具類

public class BadgeUtils {  private static final String INTENT_ACTION = "android.intent.action.BADGE_COUNT_UPDATE";  private static final String INTENT_EXTRA_BADGE_COUNT = "badge_count";  private static final String INTENT_EXTRA_PACKAGENAME = "badge_count_package_name";  private static final String INTENT_EXTRA_ACTIVITY_NAME = "badge_count_class_name";  //設(shè)置角標(biāo)  public static void setBadgeCount(Context context, int badgeCount) {    Intent intent = new Intent(INTENT_ACTION);    intent.putExtra(INTENT_EXTRA_BADGE_COUNT, badgeCount);    intent.putExtra(INTENT_EXTRA_PACKAGENAME, getComponentName(context).getPackageName());    intent.putExtra(INTENT_EXTRA_ACTIVITY_NAME, getComponentName(context).getClassName());    context.sendBroadcast(intent);  }  //清除角標(biāo)  public static void removeBadge(Context context){    setBadgeCount(context,0);  }  //獲取ComponentName  private static ComponentName getComponentName(Context context) {    return context.getApplicationContext().getPackageManager()        .getLaunchIntentForPackage(context.getApplicationContext().getPackageName())        .getComponent();  }}

注意:

因?yàn)椴煌謾C(jī)廠商的action不同,所以可能導(dǎo)致某些手機(jī)不能使用,在此推薦一個(gè)github的第三方庫(kù):https://github.com/leolin310148/ShortcutBadger

github地址:https://github.com/zhouxu88/AppBadge

完整demo下載地址:AppBadge_jb51.rar

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 镇原县| 宁阳县| 博罗县| 体育| 宜宾县| 岢岚县| 晋城| 永靖县| 扶绥县| 宁国市| 民勤县| 卫辉市| 双江| 广饶县| 石阡县| 天镇县| 琼海市| 项城市| 德钦县| 高邮市| 柘荣县| 渝中区| 屯门区| 镇安县| 高州市| 洛浦县| 眉山市| 沁阳市| 肇州县| 定襄县| 舞钢市| 沧州市| 渝中区| 中阳县| 云龙县| 乐亭县| 宝山区| 松江区| 榆社县| 沧源| 阿合奇县|