所有移动设备制造商的启动器图标上的Android徽章编号

Suj*_*U N 8 java notifications android launcher badge

我的应用程序启动器图标上需要一个徽章计数器.

我知道使用TextView在应用程序内部获取Badge计数器的解决方案,但我需要一个解决方案,以便在启动器图标上获取应用程序外部的徽章计数器.


在iOS中,我们获得了徽章编号

UIApplication.sharedApplication().applicationIconBadgeNumber
Run Code Online (Sandbox Code Playgroud)

我想知道为什么Android没有在每个开发人员需要的SDK中包含这样的东西.


尝试1:仅在sony mobiiles上工作:

    Intent badgeIntent = new Intent();
    badgeIntent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
    badgeIntent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", this.getPackageName());
    badgeIntent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", this.getClass().getName());
    badgeIntent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", ShwMsgBulVar);
    badgeIntent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", "10");

     context.sendBroadcast(badgeIntent);
Run Code Online (Sandbox Code Playgroud)

尝试2:我尝试了这个库:https: //github.com/leolin310148/ShortcutBadger

它仅适用于少数制造商,并不适用于所有Android手机.

ShortCutBadger不支持OPPO,VIVO,Xiomi,Reliance LYF默认发射器.

经过几次研究,我才知道,徽章编号取决于发射器制造商,如下所示:

ShortCutBadger支持:

  • 三星:"com.sec.android.app.launcher"
  • 索尼:"com.sonyericsson.home"
  • HTC:"com.htc.launcher"
  • 华硕:"com.asus.launcher"

ShortCutBadger没有被支持:

  • Oppo:"com.oppo.launcher"
  • Xiomi:"com.miui.home"
  • Vivo:"com.bbk.launcher2"
  • Lyf:"com.android.launcher3"
  • Go Launcher:"com.gau.go.launcherex"

那么有没有其他一般方法可以适用于所有制造商的手机?

阅读了这么多帖子并进行了大量搜索,但很多人都知道没有适用于所有发射器的通用解决方案.
但我觉得有一个解决方案,因为whatsapp和facebook应用程序在所有上述启动器中显示徽章编号.

Iva*_*oll 8

Android中没有此功能,因为徽章编号不是平台的一部分.存在一些尝试实现此目的的库,例如https://github.com/leolin310148/ShortcutBadger,但您应该理解它不适用于每个制造商的设备.另据我所知,当徽标位于主屏幕上而不是应用程序抽屉中时,徽章仅显示在图标上.

  • 是的它是真的,但不像facebook和whatsapp他们目前正在显示通知徽章,他们是如何做到这一点的? (4认同)
  • 我检查了一些设备,即使 Whatsapp 也无法在所有设备上显示徽章。 (2认同)