android应用角标

好久没写微博了 忘记这事何物了 今天不想加班 偷偷写一下 最近解除了很多以前没接触过的新东西 都懒得写 为了以后做事情方便就蛮记录一下吧 如果你觉得有用可以试着参考一下
首先奉上效果图看下吧
这图篇是手机截屏 在经过	QQ截图 不要嫌弃哈
这就是结果 当然在做之前我们首先要了解下有哪些手机,因为系统原因不支持角标 不然到时候忙了半天还是没有 要开始骂娘了 这个锅在下不背看下这些手机吧这图上次在哪里拿得 忘记了 将就一下吧 想了解更多可以自己搜索一下以上这些手机要注意 测试的时候尽量多拿几部 像华为这种比较常见的而且支持角标的妥妥的拿过来测试 是绝对问题不大的
开始说正题了哈 别走开精彩马上开始 我这边比较推荐使用别人集成好的框架 毕竟有前辈帮我们摸过河 我们走就比较放心了 不是吗
首先现在对应的app/build.gradle 下的dependencies加入依赖 implementation ‘me.leolin:ShortcutBadger:1.1.22@aar’ 加载完就是了
然后呢我们可能会纠结我需要把事件放在哪个页面好呢 一般是放在启动页或者主页 我是放在主页
需要设置一个图标统计的量

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在华为手机上,可以通过 BadgeProvider 提供的 API 来设置应用角标数。具体实现方法如下: 1. 首先,需要在 AndroidManifest.xml 文件中注册一个广播接收器,用于接收设置应用角标数的请求。代码如下: ```xml <receiver android:name=".BadgeReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BADGE_COUNT_UPDATE" /> <action android:name="android.intent.action.PACKAGE_REPLACED" /> <data android:scheme="package" /> </intent-filter> </receiver> ``` 2. 在 BadgeReceiver 中处理接收到的设置应用角标数的请求。代码如下: ```java public class BadgeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction() != null) { switch (intent.getAction()) { case "android.intent.action.BADGE_COUNT_UPDATE": // 获取应用的包名和角标数 String packageName = intent.getStringExtra("badge_package_name"); int badgeCount = intent.getIntExtra("badge_count", 0); // 设置应用角标数 setBadgeCount(context, packageName, badgeCount); break; case "android.intent.action.PACKAGE_REPLACED": // 应用更新后需要重新设置角标数 setBadgeCount(context, context.getPackageName(), 0); break; } } } /** * 设置应用角标数 */ private void setBadgeCount(Context context, String packageName, int badgeCount) { try { Bundle extras = new Bundle(); extras.putString("package", packageName); extras.putString("class", getLauncherClassName(context)); extras.putInt("badgenumber", badgeCount); context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extras); } catch (Exception e) { e.printStackTrace(); } } /** * 获取应用的启动 Activity 的类名 */ private String getLauncherClassName(Context context) { PackageManager pm = context.getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); intent.setPackage(context.getPackageName()); List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0); if (resolveInfos != null && resolveInfos.size() > 0) { return resolveInfos.get(0).activityInfo.name; } return ""; } } ``` 3. 在应用中设置角标数时,可以通过 Intent 来发送广播请求。代码如下: ```java int badgeCount = 10; Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE"); intent.putExtra("badge_package_name", getPackageName()); intent.putExtra("badge_count", badgeCount); sendBroadcast(intent); ``` 需要注意的是,华为手机上的角标数设置功能只在 EMUI 4.1 及以上版本上支持。如果您的应用需要在其他手机上设置角标数,可以使用第三方库 ShortcutBadger。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值