2016-05-26 3 views
0

У меня есть активность с библиотекой, которая запрашивает собственные разрешения, которые сталкиваются с моими необходимыми разрешениями, поэтому я просто переопределяю onRequestPermissionsResult() и разрешаю этой библиотеке запрашивать разрешения. Переопределение выглядит следующим образом:Существует какое-то окно, закрывающееся при запуске моего приложения, только в версиях Android выше 6. Речь идет о разрешениях?

@Override 
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     Log.i("perms", permissions.length+" "+requestCode); 
     int indexOfReadStorage = 0; 
     for(int i = 0 ; i < permissions.length; i++) 
     { 
      Log.i("perms_len", permissions[i]+" "+requestCode); 
      if(permissions[i].contains("READ_EXTERNAL_STORAGE")) 
      { 
       indexOfReadStorage = i; 
      } 
     } 
     if (grantResults.length > 0 && grantResults[indexOfReadStorage] == PackageManager.PERMISSION_GRANTED) { 
      // Permission Granted 
      Log.i("read_ext_storage_perm", "granted"); 
      populateFolderList(); 
     } else { 
      // Permission Denied 
      //Toast.makeText(this, "READ_EXT_STORAGE Denied", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

Где requestCode == 4 (в моем коде моя requestCode для разрешения READ_EXTERNAL_STORAGE установлена ​​на 102).

Однако теперь у меня есть какая-то анимация закрытия окна сразу после запуска приложения во второй раз и после этого. Этого не происходит, когда я тестировал приложение в Lollipop, поэтому это должно быть что-то в Marshmallow, что делает это, и я подозреваю, что это проверка прав доступа в библиотеке.

Это правда? Если да, как мне это решить? Если это не так, что может быть реальной причиной?

+0

Вы действительно уверены, что у вас есть разрешение, прежде чем вы сделаете запрос на разрешение? –

+0

Я не могу, вышеупомянутая библиотека выполняет проверку и делает запрос. – Gensoukyou1337

ответ

0

Оказывается, это связано с тем, что библиотека запрашивала разрешение в начале действия с VmaxSDK.init(this) в onCreate() [указанная библиотека была VMAX].

Итак, я переместил его на следующую операцию, и все прошло нормально.

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