2017-01-29 2 views
0

В OnCreate методразрешение на чтение Внешний накопитель в Android M Ошибка

if (ContextCompat.checkSelfPermission(thisActivity, 
      Manifest.permission.READ_EXTERNAL_STORAGE) 
    != PackageManager.PERMISSION_GRANTED) { 

// Should we show an explanation? 
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity, 
     Manifest.permission.READ_EXTERNAL_STORAGE)) { 


} else { 

    ActivityCompat.requestPermissions(thisActivity, 
      new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 
      PERMISSION_REQUEST_CODE); 
} 

В onRequestPermissionsResult

@Override 
public void onRequestPermissionsResult(int requestCode, 
            String permissions[],int[]grantResults) { 
switch (requestCode) { 
    case PERMISSION_REQUEST_CODE: { 

     if (grantResults.length > 0 
      && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
      String path = Environment.getExternalStorageState(); 

     } else { 

     } 
     return; 
    } 
} 

Я изо всех сил старался, но все заканчивается с применением аварии. Разрешение не предоставляется заявке. Зачем ? Я что-то делаю неправильно? Ваша помощь будет оценена по достоинству.

+1

вы можете разместить исключение из журнала, когда происходит сбой? –

+0

AndroidRuntime: FATAL EXCEPTION: main Процесс: com.google.android.packageinstaller, PID: 14436 java.lang.RuntimeException: Невозможно запустить Activity ComponentInfo {com.google.android.packageinstaller/com.android.packageinstaller.permission. ui.GrantPermissionsActivity}: java.lang.NullPointerException: попытаться получить длину нулевого массива at android.app.ActivityThread.performLaunchActivity – Abdullah

ответ

0

Я использую это как мой код, получил от StackOverflow, но забыл, кто ответить

public boolean hasPermission(Context context, String... permissions){ 
     for (String permission : permissions) { 
      if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) { 
       return false; 
      } 
     } 
     return true; 
    } 
    int PERMISSION_ALL = 1; 
    String[] PERMISSIONS = { 
      Manifest.permission.INTERNET, 
      Manifest.permission.ACCESS_FINE_LOCATION, 
      Manifest.permission.ACCESS_NETWORK_STATE, 
      Manifest.permission.CHANGE_NETWORK_STATE, 
      Manifest.permission.WRITE_SETTINGS, 
      Manifest.permission.CAMERA, 
      Manifest.permission.RECEIVE_SMS, 
      Manifest.permission.SEND_SMS, 
      Manifest.permission.WRITE_EXTERNAL_STORAGE, 
      Manifest.permission.ACCESS_WIFI_STATE, 
      Manifest.permission.CHANGE_WIFI_STATE, 
      Manifest.permission.ACCESS_COARSE_LOCATION, 
      Manifest.permission.READ_CONTACTS}; 
    public void checkAllPermission(){ 
     if (!hasPermission(getActivity(), PERMISSIONS)){ 
      ActivityCompat.requestPermissions(getActivity(), PERMISSIONS, PERMISSION_ALL); 
     } 
    } 
} 

попробовать (изменить как ваши потребности)

+0

Я пробовал этот код в более простой форме, но дает мне такую ​​же ошибку – Abdullah

+0

ваш манифест уже отлично? (полный) –

+0

ntaloventi Да. – Abdullah

Смежные вопросы