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

Posted

技术标签:

【中文标题】所有移动制造商的启动器图标上的 Android 徽章编号【英文标题】:Android Badge number on launcher icon for all mobile manufacturer 【发布时间】:2018-04-25 07:13:58 【问题描述】:

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

我知道使用 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

它只适用于少数制造商,并不适用于所有安卓手机。

ShortCutBadger 不适用于 OPPO、VIVO、小米、Reliance LYF 默认启动器。

经过一番研究,我了解到,徽章编号取决于发射器制造商,如下所示:

支持 ShortCutBadger:

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

不支持 ShortCutBadger:

OPPO :"com.oppo.launcher" 小米:“com.miui.home” 体内:“com.bbk.launcher2” Lyf:“com.android.launcher3” Go 启动器:“com.gau.go.launcherex”

那么还有其他通用方法可以在所有制造商的手机上运行吗?

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

【问题讨论】:

dzone.com/articles/how-to-create-badges-item-counts-in-android你能用这个链接吗 您的文章解释了在应用程序中获取徽章计数器。但我想在应用程序外部。 我不知道他们为什么不赞成这个并作为离题关闭,但我非常 100% 确定这对于面临同样问题的开发人员来说非常重要。我可以对那些将其视为无用帖子的人说,那么如果您遇到同样的问题,请不要寻找这篇内容丰富的帖子。并感谢@SujayUN 精彩的解释,我终于明白通知徽章的作用以及为什么它不适用于某些手机。 只是想指出我的困惑,我仍然在您发布的那些不受支持的启动器中看到 facebook 和什么应用通知徽章。 【参考方案1】:

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

【讨论】:

是的,确实如此,但与 facebook 和 whatsapp 不同,他们目前显示通知徽章,他们是如何做到的? 我在少数设备上检查过,即使 Whatsapp 也无法在所有设备上显示徽章。

以上是关于所有移动制造商的启动器图标上的 Android 徽章编号的主要内容,如果未能解决你的问题,请参考以下文章

Nougat、Oreo 和 Pie 上的空白/黑色应用程序启动器图标

Honor View 10手机上的android自适应启动器图标太大

Nativescript - 不同设备上的应用启动图标形状

我找到了一些显示/隐藏桌面图标的代码,但它会在此过程中移动图标。如何编辑代码以不移动图标?

获取android中所有已安装应用的图标

Xamarin表示Android导航栏向下移动