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

2022-09-04 03:56:24

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

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


在iOS中,我们通过以下方式获得徽章编号

UIApplication.sharedApplication().applicationIconBadgeNumber

我想知道为什么Android没有在他们的SDK中包含每个开发人员都需要的东西。


尝试 1 : 只在索尼手机上工作 :

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

尝试 2 : 我尝试了图书馆 : https://github.com/leolin310148/ShortcutBadger

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

ShortCutBadger不适用于OPPO,VIVO,Xiomi,Reliance LYF默认启动器。

经过几次研究,我了解到,徽章编号取决于启动器制造商,并列出如下:

ShortCutBadger 支持 :

  • 三星 : “com.sec.android.app.launcher”
  • Sony : “com.sonyericsson.home”
  • HTC : “com.htc.launcher”
  • 华硕 : “com.asus.launcher”

ShortCutBadger 未支持 :

  • Oppo :“com.oppo.launcher”
  • 秀米 : “com.miui.home”
  • Vivo : “com.bbk.launcher2”
  • Lyf : “com.android.launcher3”
  • Go Launcher : “com.gau.go.launcherex”

那么,是否有任何其他通用方法可以在所有制造商的手机上工作?

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


答案 1

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


答案 2