更新Android应用程序图标中的应用程序启动器徽章计数

时间:2018-07-20 08:29:02

标签: android

当前,在我的应用程序中,我需要在应用程序图标中将总JSONArray计数显示为通知标志计数,当我使用Notification时显示该计数,现在我需要通过编程方式从活动中更新该计数值。 / p>

我用过Shortcut Badger Library。该值会以编程方式更新,直到Android版本Lollipop,但徽章不会显示在Lollipop以上的设备中

public static void notificationBadgeCounter(Context context, int count)
{

    ShortcutBadger.applyCount(context, count);
    BagdeUtils.setBadgeCount(context,count);
}

此外,我尝试了以下代码,但此代码没有任何作用

public static void setBadgeCount(Context context, int count) {
    String launcherClassName = getLauncherName(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);
}

public static String getLauncherName(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;
}

我尝试了许多StackOverflow中可用的链接和解决方案,但没有一个起作用。谁能提供一些解决方案或任何种类的图书馆? 任何形式的帮助都将是可贵的。

谢谢!!

0 个答案:

没有答案