实现Android应用图标的上的数字角标

在做一些推送服务的时候,想在应用图标上添加未读消息,Android桌面角标的适配确实是非常坑爹的需求。原生系统根本就没有这个功能,国内很多厂家效仿ios都自己定义了该功能。

 

现在就为大家介绍部分机型添加角标的代码。

1、华为手机上显示角标:(已通过)

//添加权限

<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>

 

添加如下代码:

String launcherClassName = "com.citylink.tsm.pds.citybus.ui.AdvertActivity";//启动的Activity完整名称
        Bundle localBundle = new Bundle();//需要存储的数据
        localBundle.putString("package",this.getPackageName());//包名
        localBundle.putString("class",launcherClassName);
        localBundle.putInt("badgenumber",10);//未读信息条数
        getContentResolver().call( Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge",null,localBundle);

 

 


2、小米手机上显示角标:(已通过)
 

private void setXiaoMiBadge(Context context,int number){
        try{
            Class miuiNotificationClass = Class.forName("android.app.MiuiNotification");
            Object miuiNotification = miuiNotificationClass.newInstance();
            Field field = miuiNotification.getClass().getDeclaredField("messageCount");
            field.setAccessible(true);
            field.set(miuiNotification,String.valueOf(number==0?"":number));
        }catch (Exception e){ e.printStackTrace();
        // miui6之前
            Intent localIntent = new Intent("android.intent.action.APPLICATION_MESSAGE_UPDATE");
            localIntent.putExtra("android.intent.extra.update_application_component_name",context.getPackageName()+"/."+"MainActivity");
            localIntent.putExtra("android.intent.extra.update_application_message_text",String.valueOf(number==0?"":number));
            context.sendBroadcast(localIntent); 
        } }


3、三星手机添加角标:(已通过)

String launcherClassName = "com.redfinger.huaweichangebadge.MainActivity"; 
Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE"); 
intent.putExtra("badge_count",10); 
intent.putExtra("badge_count_package_name",getPackageName());
intent.putExtra("badge_count_class_name",launcherClassName); 
sendBroadcast(intent);

转载自:实现Android应用图标的上的数字角标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值