每个Android设备的Android Badger

时间:2017-10-04 16:55:05

标签: android

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

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

1 个答案:

答案 0 :(得分:1)

  

我如何才能让每个Android设备都能正常工作?

你不能。

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

有些人会有这样的API并会记录下来。有些人会有这样的内部使用的API,像你试图使用的库的开发人员可能会尝试帮助你使用这些内部API。但是很多主屏幕都不会有这种API。

您的主要选择是:

  1. 停止尝试完全处理启动器图标徽章。

  2. 定制您的图书馆为您提供的服务。

  3. 编写您自己的主屏幕并尝试强制用户使用您的主屏幕,以便您可以使用启动器图标徽章。