Created
September 15, 2014 13:20
-
-
Save Tadas44/cdae2f5995f21bf1c27f to your computer and use it in GitHub Desktop.
Launcher icon notification for Samsung and Sony Xperia devices
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class BadgeUtils { | |
public static void setBadge(Context context, int count) { | |
setBadgeSamsung(context, count); | |
setBadgeSony(context, count); | |
} | |
public static void clearBadge(Context context) { | |
setBadgeSamsung(context, 0); | |
clearBadgeSony(context); | |
} | |
private static void setBadgeSamsung(Context context, int count) { | |
String launcherClassName = getLauncherClassName(context); | |
if (launcherClassName == null) { | |
return; | |
} | |
Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE"); | |
intent.putExtra("badge_count", count); | |
intent.putExtra("badge_count_package_name", context.getPackageName()); | |
intent.putExtra("badge_count_class_name", launcherClassName); | |
context.sendBroadcast(intent); | |
} | |
private static void setBadgeSony(Context context, int count) { | |
String launcherClassName = getLauncherClassName(context); | |
if (launcherClassName == null) { | |
return; | |
} | |
Intent intent = new Intent(); | |
intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE"); | |
intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", launcherClassName); | |
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true); | |
intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", String.valueOf(count)); | |
intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName()); | |
context.sendBroadcast(intent); | |
} | |
private static void clearBadgeSony(Context context) { | |
String launcherClassName = getLauncherClassName(context); | |
if (launcherClassName == null) { | |
return; | |
} | |
Intent intent = new Intent(); | |
intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE"); | |
intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", launcherClassName); | |
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false); | |
intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", String.valueOf(0)); | |
intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName()); | |
context.sendBroadcast(intent); | |
} | |
private static String getLauncherClassName(Context context) { | |
PackageManager pm = context.getPackageManager(); | |
Intent intent = new Intent(Intent.ACTION_MAIN); | |
intent.addCategory(Intent.CATEGORY_LAUNCHER); | |
List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0); | |
for (ResolveInfo resolveInfo : resolveInfos) { | |
String pkgName = resolveInfo.activityInfo.applicationInfo.packageName; | |
if (pkgName.equalsIgnoreCase(context.getPackageName())) { | |
String className = resolveInfo.activityInfo.name; | |
return className; | |
} | |
} | |
return null; | |
} | |
} |
Please let me knw how and where to use this code?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
where this code to be used??