Получать результат requestPermissions, попросив разрешения

Я нуждаюсь в том, чтобы прочитать и написать файлы специфического маршрута в моем SDcard, когда я работаю с версиями Android, который не требует, чтобы были предоставлены разрешения, у меня нет проблем, но когда я работаю с версиями, которые требуют разрешений, я пишу следующее:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
            // mis rutinas
        }else{
            ActivityCompat.requestPermissions(PrincipalActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},0);
            return;
        }
    }else{
        // mis rutinas;
    }

я хочу знать, возможно ли получать результат, после принимая или нет разрешение, попросившее с ActivityCompat.requestPermissions, чтобы так мочь бросать рутину, которая требовала бы этого результата.

Спасибо.

0
задан 14.03.2017, 20:57
2 ответа

ConseguГ - то, в чем он нуждался со следующим:

final private int REQUEST_CODE_ASK_PERMISSIONS = 123;
...
...
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
        // mis rutinas
    }else{
        ActivityCompat.requestPermissions(PrincipalActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CODE_ASK_PERMISSIONS);
        return;
    }
}else{
    // mis rutinas;
}

и потом чтобы санкционировать, если aceptГі или я использую не разрешения mГ©todo onRequestPermissionsResult , оставаясь asГ-:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode){
        case REQUEST_CODE_ASK_PERMISSIONS:
            if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
                // Permission Granted
                // Rutina que se ejecuta al aceptar
            }else{
                // Permission Denied
                Toast.makeText(PrincipalActivity.this, "No se aceptó permisos", Toast.LENGTH_SHORT).show();
            }
        default:
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}
0
ответ дан 24.11.2019, 12:49

Ты попытался despuГ©s требования разрешений, проверки, если эти были приняты?

...
...
...
ActivityCompat.requestPermissions(PrincipalActivity.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},0);        

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
        // Permiso Aceptado.
    }else{
       // Permiso NO aceptado.
    }
...
...
...
0
ответ дан 24.11.2019, 12:49
  • 1
    Спасибо @Elenasys, resolví по-другому продолжая ту же схему, что и солитер работая, но используйте mé каждый onRequestPermissionsResult, сейчас напечатал ответ. – Brando T. 03.11.2016, 05:10