2016-03-22 5 views
4

У меня есть разрешение на запуск во времени от onResume() на моем BaseActivity. Когда я запускаю свое приложение, диалоговое окно разрешения времени выполнения открывает это время, не предпринимая никаких действий в диалоговом окне, я перехожу к настройке приложения и принимаю действия над разрешениями. Теперь, когда я снова возобновляю приложение, все еще отображается предыдущий диалог.Невозможно скрыть диалоговое окно разрешения Runtime Marshmallow

Итак, если я уже разрешил разрешение, то что мне делать с диалогом, потому что он все еще отображается?

+0

Не можете найти лучше, что вы ищете? – xdevs23

+0

Ваше состояние неверно показывает код, как вы проверяете –

+1

«Я прошу разрешения в onResume деятельности» - я бы не рекомендовал это как шаблон. – CommonsWare

ответ

0

Проверьте, если у вас есть разрешение на onResume - и только показать диалог, если вы получите отрицательный результат

1

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

boolean permissionRequested = false; 

@Override 
protected void onResume() { 
    super.onResume(); 
    if (Build.VERSION.SDK_INT > 22) { 
     if (getPackageManager().checkPermission(Manifest.permission.CAMERA, getPackageName()) == PackageManager.PERMISSION_GRANTED) { 
      permissionRequested = false; 
      Toast.makeText(this, "Permission Granted", Toast.LENGTH_SHORT).show(); 
     } else { 
      if (permissionRequested) { 
       permissionRequested = false; 
       Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show(); 
      } else { 
       permissionRequested = true; 
       requestPermissions(new String[] { Manifest.permission.CAMERA }, 100); 
      } 
     } 
    } else { 
     Toast.makeText(this, "Permission Granted", Toast.LENGTH_SHORT).show(); 
    } 
} 
1

Это проблема с ОС Android. Я также столкнулся с такой же проблемой и обнаружил проблему ОС.

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