2

В android 6 Я прошу разрешения на использование хранилища. Теперь, когда пользователь отклонил мой запрос, я хочу показать ему диалог, объясняющий, почему для приложения требуется разрешение для получения его разрешения.Android 6, запрашивающий разрешение

Как это можно сделать?

Есть ли встроенный диалог, похожий на тот, который появляется, когда вы используете метод разрешений запросов?

+2

см [это] (http://androidgig.com/requesting- runtime-permission /), будет полезно –

+0

Вы можете показать пользовательский диалог, когда пользователь отклонил разрешение. Он имеет метод обратного вызова, где вы можете проверить, разрешено ли разрешение. – Shvet

+3

ссылка http://developer.android.com/training/permissions/requesting.html – SANAT

ответ

5

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

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

int hasReadPermission = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE); 

if (hasReadPermission != PackageManager.PERMISSION_GRANTED) { 
    //show your custom dialog regarding why you need this permission 
} 

с помощью

requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 
     50); 
0

сделайте следующее:

/** 
* Permission check for Marshmallow 
*/ 
public void checkMallowPermissions() { 
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && 
      ContextCompat.checkSelfPermission(
        getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE 
      ) != PackageManager.PERMISSION_GRANTED) { 



     if(!ActivityCompat.shouldShowRequestPermissionRationale(this, 
       Manifest.permission.WRITE_EXTERNAL_STORAGE) || 

       checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != 
       PackageManager.PERMISSION_GRANTED) 

      ActivityCompat.requestPermissions(this, 
        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 
        PERMISSION_REQUEST_CODE); 
    } 
    if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != 
       PackageManager.PERMISSION_GRANTED) { 
      // Show your dialog 
    } 
} 
Смежные вопросы