2017-01-25 3 views
0

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

ценам ниже
package com.example.pper; 

import android.Manifest; 
import android.app.Activity; 
import android.content.pm.PackageManager; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.v4.app.ActivityCompat; 
import android.util.Log; 

public class MainActivity extends Activity { 
private String TAG; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    isStoragePermissionGranted(); 
} 

public boolean isStoragePermissionGranted() { 
    if (Build.VERSION.SDK_INT >= 23) { 
     if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { 
      Log.v(TAG, "Permission is granted"); 
      return true; 
     } else { 

      Log.v(TAG, "Permission is revoked"); 
      ActivityCompat 
        .requestPermissions(
          this, 
          new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 
          1); 
      return false; 
     } 
    } else { // permission is automatically granted on sdk<23 upon 
       // installation 
     Log.v(TAG, "Permission is granted"); 
     return true; 
    } 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, 
     String[] permissions, int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
     Log.v(TAG, "Permission: " + permissions[0] + "was " 
       + grantResults[0]); 
     // resume tasks needing this permission 
    } 
} 

}

ответ

0

проверки shouldShowRequestPermissionRationale() - если у вас диалог до и нажмите кнопку «никогда не спрашивать» он никогда не будет просить вас permmission снова.

Чтобы помочь найти ситуации, когда пользователю может понадобиться объяснение, Android предоставляет метод utiltity, shouldShowRequestPermissionRationale(). Этот метод возвращает true, если приложение запросило это разрешение ранее, и пользователь отклонил запрос.

Примечание. Если пользователь отклонил запрос на разрешение в прошлом, а выбрал опцию «Не спрашивать снова» в диалоговом окне запроса на разрешение , этот метод возвращает значение false. Метод также возвращает false, если политика устройства запрещает приложению иметь такое разрешение.

+0

Я удалил приложение и переустановить его –

+0

вы пытались отладить/журнал, чтобы увидеть, где проблема? –

0

Пожалуйста, убедитесь, что ваш файл манифеста включает в себя что-то вроде этого:

<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
    android:maxSdkVersion="25" /> 
+0

Да, это уже –

+0

Хм, странно, ваш код работает нормально на моем устройстве (Android 7.1.1). –

+0

У меня есть samsung, возможно, они настроили свои библиотеки –

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