你好我有 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。
您的主要选择是:
停止尝试完全处理启动器图标徽章。
接受图书馆为您提供的服务。
编写您自己的主屏幕并尝试强制用户使用您的主屏幕,这样您就可以拥有启动器图标徽章。
关于适用于所有 Android 设备的 Android Badger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570241/