Android之华为在app图标添加角标
刚开始进入华为开发者联盟官网,发现实现在应用图标上添加未读消息,也就是桌面图标角标的功能时,需要签约,然后还要申请,郁闷的一塌糊涂。最终经过客服沟通,发现华为已经开放了这个功能,目前并不需要商务签约以及开发者申请了。也就是说明下面这些流程都不用了:
1.申请华为证书;
2.与华为商务或市场部签署《API授权证书使用协议》;
3.在华为管理控制台创建移动应用并上传。
现在可以直接在AndroidManifest.xml增加以下权限:
<!--【华为】调用launcher接口方法所需权限-->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
<!--安装时系统依据此权限识别该应用的证书,并且动态分配权限-->
<uses-permission android:name="com.huawei.permission.sec.MDM"/>
<uses-permission android:name="com.huawei.permission.sec.SDK_LAUNCHER"/>
<uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS"/>
<!-- 【华为】调用launcher接口方法所需权限-->
然后在需要的地方调用如下代码:
/***
* 将未读消息数传给华为launcher
*/
public void setBadgeNum() {
checkIsSupportedByVersion ();
try{
if (isSupportedBade) {
/***
* package:应用包名
* class:桌面图标对应的应用入口Activity类,也就是你app的MainActivity
* badgenumber:角标数字(必须为大于或等于0的数字,为0时不显示角标)。
*/
int num = 2;
String launcherClassName = "com.swissabl.ui.SplashActivity";//启动的Activity完整名称
Bundle extra = new Bundle();//需要存储的数据
extra.putString("package", getPackageName());//包名
extra.putString("class", launcherClassName);//main activity
extra.putInt("badgenumber", num);//未读信息条数
getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra);
}
}catch (SecurityException e){
e.printStackTrace();
}
}
/**
* 判断当前系统是否支持华为桌面角标功能
*/
public void checkIsSupportedByVersion () {
try {
PackageManager manager = getPackageManager();
PackageInfo info = manager.getPackageInfo("com.huawei.android.launcher", 0);
if (info.versionCode >= 63029) {
isSupportedBade = true;
}
} catch (Exception e) {
e.printStackTrace();
}
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。