Aplicación de permisos dinámicos en Android

En el blog anterior, hablé sobre cómo encapsular una clase base de permisos dinámicos. Sin embargo, es posible que muchos lectores aún no sepan cómo solicitar permisos dinámicos. Acabo de leer el libro y vi esto, también lo resumiré.

solicitud de acceso

public static boolean checkPermission(Activity act,String permission,int requestCode){
    boolean result = true;
    //只对Android 6.0及以上系统进行校验
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
        //检查当前APP是否开启了名称为permission
        int check = ContextCompat.checkSelfPermission(act,permission);
        if (check!= PackageManager.PERMISSION_GRANTED){
            //未开启该权限,则请求系统弹窗,好让用户选择是否立即开启权限
            ActivityCompat.requestPermissions(act,new String[]{permission},requestCode);
            result = false;
        }
    }
    return result;
}

Devolución de llamada después de la solicitud de permiso

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == mRequestCode){
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED){
                //已授权,则进行后续的正常逻辑处理
                ToastUtil.toastWord(this,"授权了");
            }else{
                //未授权,则提示用户可能导致的问题
                ToastUtil.toastWord(this,"没授权");
            }
        }
    }

Finalmente, llamamos al método de verificación de permisos y pasamos el código de identificación mRequestCode

checkPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE,mRequestCode);

Del cual código de identificación

private final int mRequestCode = 1001;//定义的请求权限识别

Aquí para explicar, cuando determinemos que el usuario no ha obtenido el permiso, haremos una solicitud. En este momento, el teléfono mostrará un cuadro emergente para preguntarle al usuario si debe autorizar. Si el usuario está autorizado, ingresamos la devolución de llamada para indicar que la autorización es exitosa, no hay nada que decir al respecto. Si el usuario tiene prohibido ingresar, ingresamos el juicio no autorizado de la devolución de llamada, y el usuario aún aparece cuando el usuario vuelve a solicitar, lo que también es posible.

Pero cuando el usuario haya verificado la prohibición, no vuelva a preguntar y luego haga clic en prohibición. Entonces el problema es grande, porque en el futuro no podrás ingresar directamente sin autorización. Entonces, si tenemos esta situación, debemos hacer juicios relevantes y dejar que el usuario ingrese a la página de configuración para realizar la configuración correspondiente. Pero no diré tanto aquí, explorémoslo lentamente.

Supongo que te gusta

Origin blog.csdn.net/weixin_38322371/article/details/115197015
Recomendado
Clasificación