mui开发5+app之android下判断是否已经开启了通知权限

在开发自己的推送app的时候发现需要通知权限,网上很多资料都已经很久没有更新了,经过多次调试发现安卓的某些类过时了,经过更改和调整,写了一个mui下判断是否有通知权限的逻辑,如果没有开启权限则提示用户开启并跳转到对应的权限设置,方便用户快速开启对应的权限(仅限android,自己开发的版本是安卓12,其他自己的测试):

if(mui.os.android){
    var main = plus.android.runtimeMainActivity();
    //包名
    var pkName = main.getPackageName();
    var NotificationManagerCompat = plus.android.importClass("androidx.core.app.NotificationManagerCompat");

    var packageNames = NotificationManagerCompat.from(main);

    if (packageNames.areNotificationsEnabled()) {
        console.log('已开启通知权限');
    }else{
        mui.confirm('通知权限没有开启,无法接收到消息通知','需要权限提示',['取消','去开启'],function (e) {
            e.index
            if(e.index==1){
                var Intent = plus.android.importClass('android.content.Intent');
                var Build = plus.android.importClass("android.os.Build");
                
                //android 8.0引导
                if (Build.VERSION.SDK_INT >= 26) {
                    var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
                    intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);
                } else if (Build.VERSION.SDK_INT >= 21) {
                    //android 5.0-7.0
                    var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');
                    intent.putExtra("app_package", pkName);
                    intent.putExtra("app_uid", uid);
                } else {
                    //(<21)其他--跳转到该应用管理的详情页
                    var Settings = plus.android.importClass("android.provider.Settings");
                    var Uri = plus.android.importClass("android.net.Uri");
                    var intent = new Intent();
                    intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                    var uri = Uri.fromParts("package", main.getPackageName(), null);
                    intent.setData(uri);
                }
                // 跳转到该应用的系统通知设置页
                main.startActivity(intent);
            }
        },'div')



    }
}else{
    console.log('ios未设置权限获取')
}

效果:

微信图片_20220403140751.jpg

评论/留言