shortcutbadger依赖库的介绍

先上依赖库下载地址:https://github.com/leolin310148/ShortcutBadger

  • 在项目开发的过程中,项目需求在手机桌面图标上显示新消息条数的角标
  • 桌面角标的功能在原生android系统中是没有提供此类API的
  • 只有第三方深度定制过的android系统才有此类功能
  • 如:三星、小米、魅族、华为等
  • 但问题又来了,每家定制使用的方法又只不相同
  • 因此今天的主角shortcutbadger上场了

shortcutbadger可以你的Android应用程序显示未读消息计数

作为徽章,在您的应用软件快捷!

支持以下系统

微信android角标和消息推送 微信新消息角标设置_微信android角标和消息推送

运用起来非常方便

1.添加mavencentral编译脚本。

repositories {
        mavenCentral()
    }

2.添加shortcutbadger依赖性的,但它现在从Maven。

dependencies {
        compile "me.leolin:ShortcutBadger:1.1.13@aar"
    }

3.使用方法在桌面上显示角标:(badgeCount = 0的话,不会显示角标)

int badgeCount = 1;
ShortcutBadger.applyCount(context, badgeCount); //for 1.1.4+
ShortcutBadger.with(getApplicationContext()).count(badgeCount); //for 1.1.3

4.如果你想删除的角标

ShortcutBadger.removeCount(context); //for 1.1.4+
ShortcutBadger.with(getApplicationContext()).remove();  //for 1.1.3
注意:shortcutbadger只能支持以上大部分系统的Launcher启动器

以下是如何把依赖库转换为jar包

  • 下载ShortcutBadger进行解压得到ShortcutBadger-master文件夹
  • 文件夹中的ShortcutBadger就是依赖包的源码文件

微信android角标和消息推送 微信新消息角标设置_桌面图标_02

  • 把它导入Eclipse中
  • 从Eclipse中可以看出ShortcutBadger项目中src目录下没有源文件
  • 把ShortcutBadger –> java 中的源文件剪切到src目录中后
  • ShortcutBadger项目会报错
  • 原因是api版本过低,把api版本调置到5.0以上,Clean一下就OK了
  • 最后把ShortcutBadger项目变为依赖库
  • 让自己的项目去添加ShortcutBadger依赖

微信android角标和消息推送 微信新消息角标设置_微信android角标和消息推送_03

最后运行自己的项目成功后,就会在ShortcutBadger依赖项目中bin文件夹下生成我们需要的jar文件

微信android角标和消息推送 微信新消息角标设置_角标_04

至此我们就可以把自己项目添加的ShortcutBadger依赖删除,把刚生成的jar包放入我们的项目中。

注意用此方法生成的jar包运用到自己的项目中时,需要把权限申明写入到我们自己的AndroidManifest.xml文件中

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

    <!--for htc-->
    <uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS"/>
    <uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"/>

    <!--for sony-->
    <uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE"/>
    <uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"/>

    <!--for apex-->
    <uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT"/>

    <!--for solid-->
    <uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE"/>

    <!--for huawei-->
    <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
    <uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS"/>
    <uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>

    <!--for ZUK-->
    <uses-permission android:name="android.permission.READ_APP_BADGE"/>

    <!--for OPPO-->
    <uses-permission android:name="com.oppo.launcher.permission.READ_SETTINGS"/>
    <uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS"/>