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

首頁 > 系統 > Android > 正文

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

2019-10-23 18:31:15
字體:
來源:轉載
供稿:網友

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

效果圖

android,應用角標,android角標數字,添加應用角標

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

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

一些必要的說明

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

原理

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

在AndroidManifest.xml中添加讀取和寫入角標的權限:

<uses-permission android/54255.html">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.rar

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 开封市| 广宗县| 长子县| 景泰县| 新巴尔虎右旗| 文水县| 昌黎县| 龙南县| 鄯善县| 南阳市| 南华县| 红原县| 枣强县| 昌图县| 卓尼县| 霞浦县| 淮滨县| 罗山县| 调兵山市| 温宿县| 昔阳县| 阿拉善左旗| 凤山县| 和平区| 定日县| 张家界市| 琼结县| 仁寿县| 山西省| 台山市| 成都市| 华坪县| 正宁县| 临夏县| 桃园市| 登封市| 呈贡县| 河间市| 西峡县| 恩施市| 弥勒县|