如何在Android中为所有设备实现推送通知徽章

时间:2014-03-05 08:48:03

标签: android push-notification badge

我想在三星,索尼,Lg等所有设备上显示推送通知徽章,我想显示像facebook原生应用程序的通知徽章。我做了一个小的研究,在我的结果中,Android依靠通知中心向用户提供有关传入事件的指示。从技术上讲,如果您的应用已经这样做,您不必做任何其他事情。 但有些设备有自己的框架徽章接收器。

索尼

http://marcusforsberg.net/blog/android-notification-badge-app-icon-sony/

Intent intent = new Intent();

intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", "com.yourdomain.yourapp.MainActivity");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true);
intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", "99");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", "com.yourdomain.yourapp");

sendBroadcast(intent);

在三星

https://github.com/shafty023/SamsungBadger

将以下权限添加到应用程序的AndroidManifest.xml

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

使用“1”

标记您的图标
Context context = getApplicationContext();
if (Badge.isBadgingSupported(context)) {
    Badge badge = new Badge();
    badge.mPackage = context.getPackageName();
    badge.mClass = getClass().getName();
    badge.mBadgeCount = 1;
    badge.save(context);
}

是否有其他框架徽章接收器代码可用?

3 个答案:

答案 0 :(得分:2)

我也遇到了同样的问题但是你的问题的完美解决方案在链接下面:

https://derivedcode.wordpress.com/2013/10/09/showing-badge-or-count-in-android-app-icon/

答案 1 :(得分:0)

尝试使用此图书馆ShortcutBadger

github的描述:

  

ShortcutBadger:ShortcutBadger使您的Android应用程序显示   将未读邮件计数为应用程序快捷方式上的徽章!

答案 2 :(得分:0)

这对我有用:

1) Add mavenCentral to your build script.

 repositories {
    mavenCentral()
}

2) Add dependencies for ShortcutBadger, it's available from maven now.

 dependencies {
        compile 'me.leolin:ShortcutBadger:1.1.4@aar'
    }

3) Add the codes below:

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

4) If you want to remove the badge
 ShortcutBadger.removeCount(context); //for 1.1.4
ShortcutBadger.with(getApplicationContext()).remove();  //for 1.1.3

 or

ShortcutBadger.applyCount(context, 0); //for 1.1.4
ShortcutBadger.with(getApplicationContext()).count(0); //for 1.1.3