API Level 21からPackageManager#getUserBadgedIconというメソッドが追加されました
http://developer.android.com/reference/android/content/pm/PackageManager.html#getUserBadgedIcon(android.graphics.drawable.Drawable,android.os.UserHandle
結論から言うと現在は特定の条件で固定のバッジを表示するのみのようです。
@Override
public Drawable getUserBadgedIcon(Drawable icon, UserHandle user) {
final int badgeResId = getBadgeResIdForUser(user.getIdentifier());
if (badgeResId == 0) {
return icon;
}
Drawable badgeIcon = getDrawable("system", badgeResId, null);
return getBadgedDrawable(icon, badgeIcon, null, true);
}
のようになっていて、getBadgeResIdForUserでリソースIDを取得して、Drawableを取得して返していて、
getBadgeResIdForUserでは以下のように固定のバッジ画像のリソースIDを返しているため、投稿した時点では固定のバッジをつけるのみのようです。
private int getBadgeResIdForUser(int userHandle) {
// Return the framework-provided badge.
UserInfo userInfo = getUserIfProfile(userHandle);
if (userInfo != null && userInfo.isManagedProfile()) {
return com.android.internal.R.drawable.ic_corp_icon_badge;
}
return 0;
}
isManagedProfileについてはこちらの記事に書かれているようです。企業や学校などで管理されたプロファイルを利用するようです。
Android 5.0 API概要
http://firespeed.org/diary.php?diary=kenz-1784
標準のLauncherアプリではないですが、Launcherアプリが対応していれば、Broadcastを投げてバッジを付ける方法もあるようで、Lineアプリなどは対応しているようです