Android通知权限判断以及跳转到权限设置界面(兼容8.0及以上)

当APP中有推送的时候就要考虑到通知权限是否用户有没有开启权限的情况,下面就是对判断用户是否开启权限并且跳转到权限设置界面的代码

            if (ifHavePermmisson) {//有权限的话就直接放过
               //这里是已经有权限的逻辑
            }else{//没有权限就跳转到
                if (Build.VERSION.SDK_INT >= 26) {
                    //这种方案适用于 API 26, 即8.0(含8.0)以上可以用,由于看别人发的全都是直接调用apk的,只能是在compileSdkVersion>=28的时候才能用,这里我做了一些兼容,直接把字符串给粘贴了过来             
                    Intent intent = new Intent();
                    intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
                    intent.putExtra("android.provider.extra.APP_PACKAGE", getPackageName());
                    intent.putExtra("android.provider.extra.CHANNEL_ID", getApplicationInfo().uid);
                    startActivity(intent);
                } else {
                    toPermissionSetting(this);
                }
            }
 /**
     * 跳转到权限设置
     *
     * @param activity
     */
    public static void toPermissionSetting(Activity activity) {
        if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) {
            toSystemConfig(activity);
        } else {
            try {
                toApplicationInfo(activity);
            } catch (Exception e) {
                e.printStackTrace();
                toSystemConfig(activity);
            }
        }
    }

    /**
     * 应用信息界面
     *
     * @param activity
     */
    public static void toApplicationInfo(Activity activity) {
        Intent localIntent = new Intent();
        localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        localIntent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        localIntent.setData(Uri.fromParts("package", activity.getPackageName(), null));
        activity.startActivity(localIntent);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容