当前位置: 首页 > 知识库问答 >
问题:

Facebook如何在Android的应用图标上添加徽章号码?

谭畅
2023-03-14

我知道这里有几个问是否有可能添加徽章到Android应用程序,他们都以否的答案结束...

但不知何故,最新的Facebook Android测试版似乎做了一些事情,至少看起来像一个徽章,即使从技术上讲,它并不完全是这样。

在那篇文章中,一位评论者说它与TouchWiz有某种联系。在这里,他们还提到它是“S3TouchWiz果冻豆插件”的一个特性。

我仍然希望了解如何做到这一点,以及是否有一些API可以在我自己的应用程序中使用(当在适当的环境中运行时-即FB演示此行为的相同设备)?

共有3个答案

弘烨烁
2023-03-14

没有一个标准的方法来实现这一点;索尼或三星等许多制造商已经在自己的Android定制中实现了这一功能。

例如,在三星,您必须通过BADGE_COUNT_UPDATE动作广播意图,让MainActivity成为您的主要活动类别,COUNT成为您希望在应用程序图标中显示的数字,请注意,0将隐藏徽章:

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", MainActivity.class.getName());
context.sendBroadcast(intent);

索尼设备使用“com.sonyericsson.home.action.UPDATE_BADGE”action,其自定义额外功能为@Marcus Answered,因此您必须将“com.sonyericsson.home.permission.BROADCAST_BADGE”权限添加到您的应用程序清单中,并:

Intent intent = new Intent("com.sonyericsson.home.action.UPDATE_BADGE");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", MainActivity.class.getName());
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);

注意:最好查询应用程序的数据context.getPackageName()MainActivity)。班getName())而不是硬编码,以防将来进行重构。

景宏朗
2023-03-14

我已经想出了索尼设备是如何做到这一点的。

我在这里写过博客。我也在这里发布了一个单独的SO问题。

索尼设备使用一个名为BadgeReciever的类。

>

  • 声明com。索尼埃里克森。家准许在您的清单文件中广播\u徽章权限:

    广播IntentBadgeRecector

    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);
    

    完成。一旦此意图被广播,启动器应在应用程序图标上显示一个徽章。

    要再次删除徽章,只需发送一个新的广播,这次将SHOW_MESSAGE设置为false:

    intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false);
    

    我已经排除了关于我是如何找到这个的细节,以保持答案的简短,但这些都可以在博客上找到。对某人来说可能是一本有趣的书。

  • 仉成益
    2023-03-14

    嗨,你可以简单地使用这个lib。

    支持:索尼、三星、LG、HTC、小米、华硕、ADW、APEX、NOVA、华为、ZUK、OPPO

    短尾獾

    添加:

    int badgeCount = 1;
    ShortcutBadger.applyCount(context, badgeCount);  
    

    删除:

    ShortcutBadger.applyCount(context, 0);
    
     类似资料:
    • 我需要在我的应用程序图标上显示徽章 我所尝试的: > 2.我已经浏览了许多已经在stackoverflow上的可用答案,如 如何在应用程序启动器图标中显示通知计数 我们可以在android应用程序图标(如iphone)上显示徽章号码吗? 如何在Redmi上使用应用程序图标显示徽章计数? 在android应用程序图标上添加未读通知徽章 有没有办法在Android系统中为应用程序图标添加徽章? 所有这

    • 你可能认为这是一个重复的问题,但我希望答案比任何类似的问题都更具体。 首先,它说,就像Facebook与三星设备红点。Facebook如何在Android的应用程序图标上添加徽章号码?.或者Nova TestlaUnread。 事实是这样的。我以为touchWiz正在为所有应用程序添加徽章,但当我尝试使用我的应用程序进行测试以获得一些通知时,它没有显示任何徽章。我发现三星TouchWiz只向所选应

    • 在我的应用程序中,我使用firebase推送通知。我想为所有版本的设备(如Whatsapp)显示应用图标徽章(应用图标上的点), 在Android8中,徽章仅通过打开设置(在手机中)显示- 默认情况下,我需要打开此设置

    • 我在我的应用程序中创建Firebase消息推送。推送通知完全显示在Android设备,但消息推送消息不计应用程序图标徽章。在MI设备推送通知消息计数应用程序图标徽章.什么问题为什么三星设备是不是计数消息徽章?

    • 我需要一个徽章计数器在我的应用程序启动器图标。 我知道使用TextView在应用程序内部获取徽章计数器的解决方案,但我需要一个在启动器图标上获取应用程序外部徽章计数器的解决方案。 在iOS中,我们通过计数获得徽章编号 我想知道为什么Android在SDK中没有包含任何开发者都需要的东西。 尝试1:只在索尼手机上工作: 尝试2:我尝试了图书馆:https://github.com/leolin310

    • 问题内容: 我的应用程序启动器图标上需要一个徽章计数器。 我知道使用TextView在应用程序内部获取徽章计数器的解决方案,但是我需要一个解决方案来在启动器图标上将徽章计数器获取到应用程序外部。 在iOS中,我们通过 我想知道为什么Android的SDK中没有包含每个开发人员都需要的东西。 尝试1:仅适用于索尼移动电话: 尝试2:我尝试了图书馆:https : //github.com/leoli