应用图标上的徽章

6

我需要在我的应用程序中显示应用图标上的徽章。

我尝试过以下方法:

  1. This https://github.com/leolin310148/ShortcutBadger library do it on many devices.I have checked its manifest and saw that there exists a permission for each type of launcher

     <!--for Samsung-->
       <uses-permission      android:name="com.sec.android.provider.badge.permission.READ"/>
     <uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/>
    
     <!--for htc-->
    <uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS"/>
     <uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"/>
    
      <!--for sony-->
     <uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE"/>
     <uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"/>
    <!--for apex-->
    <uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT"/>
    
     <!--for solid-->
     <uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE"/>
    
     <!--for huawei-->
     <uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
     <uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS" />
     <uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS" />
    
     <!--for ZUK-->
     <uses-permission android:name="android.permission.READ_APP_BADGE"/>
    

2.我已经查看了许多已经在stackoverflow上的答案,例如:

如何在应用程序启动器图标中显示通知计数

我们可以像iPhone一样在Android应用程序图标上显示徽章数字吗?

如何在Redmi上显示应用程序图标的徽章计数?

在Android应用程序图标上添加未读通知徽章

在Android应用程序图标上添加徽章的方法是什么?

所有这些资源都帮助我在上述设备上完成任务,但我仍然可以看到有很多设备,如小米、Micromax等,在其中像wtsapp、facebook等应用程序显示徽章,但我无法在这些设备上显示徽章。

这里有人实现过吗?任何帮助将不胜感激。


这肯定与权限有关,因为在红米手机上,您可以转到设置->应用程序->管理应用程序->您的应用程序->通知,并打开“显示应用程序图标徽章”。这将开始显示应用程序图标徽章..... - DragonFire
3个回答

1

为了显示徽章,谷歌可能已经停止在应用程序图标上显示数字计数作为徽章,但我认为它仍然会显示一个点来让用户知道该应用有新东西。

如需更多信息,请查看谷歌的 https://developer.android.com/training/notify-user/badges 官方链接。


1
这不是Android系统的一个功能。设备制造商(如你提到的小米)或启动器开发者(如Nova Launcher)可以实现它并为应用程序开发人员公开API,但没有标准,用户也不希望有这个功能。
总的来说,在Android上你不应该尝试这样做。

2
谢谢答案。是的,我知道没有标准的方法,但是像WhatsApp、eBay和Facebook这样的应用程序却在做到了。所以肯定有一种解决办法是这些人发现的。我就是在问这个。 - Harry Sharma
他们并没有“做到这一点”。您使用的启动器可能允许他们显示此类数据,但在大多数情况下,这取决于启动器而不是应用程序。 Google现在启动器不会在任何设备上显示任何徽章,请尝试一下。 - Kelevandos
谢谢。但是还有一种方法,就像在Micromax上我也可以看到的那样。至少这些启动器的权限将在某个地方被提及。就像我们已经拥有像三星、华为等启动器的权限一样。 - Harry Sharma
2
但是,Facebook和WhatsApp如何向那些特定的手机展示通知徽章呢? - david

0

可以的!从文档中得知:https://developer.android.com/training/notify-user/badges

默认情况下,每个通知都会增加一个显示的数字,但是您可以覆盖此数字以适用于您的应用程序。例如,如果您只使用一个通知来表示多个新消息,但您希望此处的计数表示总新消息数,则可能会很有用。

要设置自定义数字,请调用通知上的setNumber(),如下所示:

var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setNumber(messageCount)
        .build()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接