2014-03-05 70 views
2

我想在三星,索尼,LG等所有設備上顯示推送通知徽章,我想顯示通知徽章,如Facebook本機應用程序。我在我的結果中爲此做了小型研究。Android依靠通知中心爲用戶指示傳入事件。所以從技術上講,如果你的應用程序已經這樣做了,那麼你不需要做其他任何事情。 但某些設備有自己的框架徽章接收器。如何在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); 
} 

是否有任何其他的框架徽章接收器的代碼可以在自己的圖標?

+0

爲什麼複製的iOS的用戶界面?請嘗試發明新的東西。 – Raptor

+1

@ Raptor:是的,你是對的,但有些用戶想要發佈像iOS一樣的UI。他們告訴Facebook本機應用程序有徽章,爲什麼我們的應用程序不能這樣做。對不起我的英文不好。 –

+0

Facebook本地應用是否有適用於所有Android設備和發射器的徽章? – Raptor

回答

0

試着用這個libriary ShortcutBadger。從GitHub

說明:

ShortcutBadger:本ShortcutBadger使你的Android應用程序顯示爲您的應用程序快捷方式的徽章未讀郵件的 計數!

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:[email protected]' 
    } 

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