适用于所有Android设备的Android獾

适用于所有Android设备的Android獾,android,Android,你好,我有android应用程序,我需要将獾添加到我在互联网上搜索并找到这个库的应用程序启动器中 compile 'me.leolin:ShortcutBadger:1.1.4@aar' 我在三星和HTC试过的所有设备都能正常工作,但在夏威夷或索尼却不能正常工作。我怎样才能让每台Android设备都能正常工作 这是我的密码 int badgeCount = 0; try { badgeCount = Integer.parseInt(b

你好,我有android应用程序,我需要将獾添加到我在互联网上搜索并找到这个库的应用程序启动器中

compile 'me.leolin:ShortcutBadger:1.1.4@aar'
我在三星和HTC试过的所有设备都能正常工作,但在夏威夷或索尼却不能正常工作。我怎样才能让每台Android设备都能正常工作

这是我的密码

 int badgeCount = 0;
            try {
                badgeCount = Integer.parseInt(bundle.getString("badge"));
            } catch (NumberFormatException e) {
                e.printStackTrace();
            }
            try {
                ShortcutBadger.applyCount(getApplicationContext(), badgeCount);
            } catch (Exception e) {
                e.printStackTrace();
                Log.d("BADGE","BADGE");
            }
然后我试着像这样添加对清单的权限,但也不起作用

  <!--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"/>

    <!--for OPPO-->
    <uses-permission android:name="com.oppo.launcher.permission.READ_SETTINGS"/>
    <uses-permission android:name="com.oppo.launcher.permission.WRITE_SETTINGS"/>

    <!--for EvMe-->
    <uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_READ"/>
    <uses-permission android:name="me.everything.badger.permission.BADGE_COUNT_WRITE"/>

我怎样才能让它适用于所有android设备

你不能

如何在主屏幕上显示内容取决于主屏幕的开发人员,而不是您。Android有数百种不同的主屏幕实现,包括预安装和用户安装。没有人必须提供任何类型的API,让应用程序开发人员在启动器图标上设置徽章

有些人会有这样一个API并将其记录下来。有些将有这样一个API供内部使用,像您正在尝试使用的库的开发人员可能会尝试帮助您使用这些内部API。但许多主屏幕将不会有任何类型的API

你的主要选择是:

  • 停止尝试完全处理启动器图标徽章

  • 满足于你的图书馆提供给你的东西

  • 编写您自己的主屏幕,并尝试强制用户使用您的主屏幕,这样您就可以拥有启动器图标徽章


  • 感谢您的重播,那么像facebook、whatsapp和其他应用程序是如何工作的呢?对于所有或大多数设备???@MoayedAlayaseh:你必须问Facebook,他们与设备制造商和其他主屏幕实施者达成了何种交易。现在我找到了解决方案,并开始工作。谢谢:)以下是这个问题的解决方案@commonware