Android為應用添加角標

github地址(完整demo下載)

https://github.com/zhouxu88/AppBadge

效果圖

APP角標.jpg
  • 可以看到圖中的環(huán)信單聊這個app右上角的紅色的圓圈,里面有6這個數(shù)字的,就是一種角標党晋。

  • 角標桌粉,英語是badge,也就是“徽章,像章嗅回,獎章辣苏; 象征肝箱,標記”的意思。

  • 一般來說稀蟋,應用的角標是用來標記有多少條提醒(Notification)沒讀(unread)狭园,一旦點擊提示進應用閱讀了,角標也會消失糊治。

一些必要的說明

角標原本是蘋果的iOS中的東西唱矛,Android原生并不支持角標,因為Google的意思是讓大家用Notification(提示欄)即可,不過無妨绎谦,厲害的Android第三方廠商可以通過在自定義的Launcher(啟動器)中操作來實現(xiàn)添加角標管闷。

原理

添加角標的原理就是發(fā)送一個Broadcast(廣播),在廣播的Intent中指定需要被添加角標的應用的packageName(包名)窃肠,className(類名)包个,count(角標數(shù)目)。當然了冤留,不同廠商的手機的角標操作的Intent的action是不一樣的碧囊。

  • 在AndroidManifest.xml中添加讀取和寫入角標的權限:
<uses-permission android:name="com.sec.android.provider.badge.permission.READ" />
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE" />
  • 設置角標和清除角標的工具類
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";

    //設置角標
    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);
    }

    //清除角標
    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();
    }
}

注意:
因為不同手機廠商的action不同,所以可能導致某些手機不能使用纤怒,在此推薦一個github的第三方庫
https://github.com/leolin310148/ShortcutBadger

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末糯而,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泊窘,更是在濱河造成了極大的恐慌熄驼,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烘豹,死亡現(xiàn)場離奇詭異瓜贾,居然都是意外死亡,警方通過查閱死者的電腦和手機携悯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門祭芦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人憔鬼,你說我怎么就攤上這事实束。” “怎么了逊彭?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵咸灿,是天一觀的道長。 經(jīng)常有香客問我侮叮,道長避矢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任囊榜,我火速辦了婚禮审胸,結果婚禮上,老公的妹妹穿的比我還像新娘卸勺。我一直安慰自己砂沛,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布曙求。 她就那樣靜靜地躺著碍庵,像睡著了一般映企。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上静浴,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天堰氓,我揣著相機與錄音,去河邊找鬼苹享。 笑死双絮,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的得问。 我是一名探鬼主播囤攀,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宫纬!你這毒婦竟也來了焚挠?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤哪怔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后向抢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體认境,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年挟鸠,在試婚紗的時候發(fā)現(xiàn)自己被綠了叉信。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡艘希,死狀恐怖硼身,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情覆享,我是刑警寧澤佳遂,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站撒顿,受9級特大地震影響丑罪,放射性物質發(fā)生泄漏。R本人自食惡果不足惜凤壁,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一吩屹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拧抖,春花似錦煤搜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘲驾。三九已至,卻和暖如春厌衙,著一層夾襖步出監(jiān)牢的瞬間距淫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工婶希, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留榕暇,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓喻杈,卻偏偏與公主長得像彤枢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子筒饰,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容