适用于所有 Android 设备的 Android Badger

标签 android

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

compile 'me.leolin:ShortcutBadger:1.1.4@aar'

工作正常但不适用于我在 Samsung 和 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"/>

最佳答案

how i can make this work for every android device ?

你不能。

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

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

您的主要选择是:

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

  2. 接受图书馆为您提供的服务。

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

关于适用于所有 Android 设备的 Android Badger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570241/

相关文章:

android - 无法使用 cast-android-sample 使 MPEG-DASH 工作

java - 关于Android布局文件

android - 在自定义 AlertDialog 中插入 SeekBar (Android)

java - Android/Java - 寻求带有textView的拖放GridView示例

android - GoogleFit 区分来自不同设备的数据

java - 如何将 currentTimeMillis 转换为可读的日期格式?

android - 如何使用 Lottie 动画文件作为滑动的占位符

android - 如何获取我上传到 Assets 或在 android 中绘制的图像的路径?

android - 为什么启动 Activity - 焦点在我的 EditText 上,我无法删除它?

java - 对已位于类路径上的插件的插件请求不得包含版本