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

我知道这里有几个Q询问是否有可能向Android应用程序添加徽章,它们最终都没有得到答案......

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

在那篇文章中,其中一位评论者说它与TouchWiz有某种关系。在这里,他们提到它是“S3 TouchWiz果冻豆插件”的一个功能。

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


答案 1

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

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

快捷键獾

enter image description here

加:

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

删除:

ShortcutBadger.applyCount(context, 0);

答案 2

我已经弄清楚了索尼设备是如何做到这一点的。

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


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

  1. 在清单文件中声明权限:com.sonyericsson.home.permission.BROADCAST_BADGE

  2. 将 a 广播到 :IntentBadgeReceiver

    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);
    
  3. 做。广播后,启动器应在应用程序图标上显示徽章。Intent

  4. 要再次移除徽章,只需发送新的广播,这次设置为 false:SHOW_MESSAGE

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

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