权限 - 如何在运行时运行MIUI的电话中请求和/或更改它们?

时间:2017-01-23 07:57:52

标签: android permissions

显然,在Marshmallow之前,MIUI OS已经实现了自己的Permissions系统。我目前正在测试小米Mi 4i的视频录制应用程序,该应用程序使用基于API 21 [Android 5.0.2]的MIUI,它需要录制音频权限,默认情况下,MIUI的权限管理器不会授予。

到目前为止,我设法更改权限的方法是通过单击AlertDialog中的“确定”按钮访问应用程序的“权限管理器”窗口:

isMIUI = MIUIUtils.isMIUI();
if(isMIUI)
{
    AlertDialog.Builder adb = new AlertDialog.Builder(this);
    adb.setMessage("If you intend to use the video recording feature, please enable the 'Record Audio' permission in the settings menu. You will be redirected there if you press OK.")
        .setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Intent intent = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS");
                intent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
                intent.putExtra("extra_pkgname", "com.picmix.mobile");
                startActivity(intent);
            }
        })
        .setNegativeButton("CANCEL", null)
        .create();
    adb.show();
}

但这对我来说还不够好。我需要检查MIUI权限管理器中是否已经检查Record Audio权限,以便只运行一次。

如何以编程方式检查授予的权限或在MIUI权限管理器中通知的权限?

1 个答案:

答案 0 :(得分:-1)

private boolean resourceCanBeAccessed() {

        boolean response = true;

        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if(ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO)
                    == PackageManager.PERMISSION_DENIED ) {

                ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.RECORD_AUDIO}, 1);
                response = false;
            }
        }
        return response;
    }

您只需在访问资源之前调用此方法。如果授予权限,此方法将返回true。如果没有授予权限,那么它将授予权限