最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android為應用添加數字角標的簡單實現

 更新時間:2017年04月17日 09:32:17   作者:陪你嘮嗑  
應用的角標是用來標記有多少條提醒沒讀,本篇文章主要介紹了Android為應用添加角標的簡單實現,有興趣的可以了解一下。

角標,英語是badge,也就是“徽章,像章,獎章; 象征,標記”的意思。

效果圖


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

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

一些必要的說明

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

原理

添加角標的原理就是發(fā)送一個Broadcast(廣播),在廣播的Intent中指定需要被添加角標的應用的packageName(包名),className(類名),count(角標數目)。當然了,不同廠商的手機的角標操作的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

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

完整demo下載地址:AppBadge_jb51.rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

崇左市| 凉城县| 扶沟县| 阜宁县| 岗巴县| 买车| 牡丹江市| 调兵山市| 洱源县| 榆社县| 房山区| 安化县| 庐江县| 石嘴山市| 名山县| 南郑县| 本溪市| 丹棱县| 四平市| 扎鲁特旗| 常熟市| 岳阳县| 邢台县| 玉龙| 德昌县| 罗甸县| 北流市| 商南县| 龙川县| 清水县| 新乐市| 葫芦岛市| 牙克石市| 长沙市| 罗田县| 南安市| 本溪市| 灵石县| 榆林市| 兰考县| 西盟|