Я пытаюсь сделать приложение android, где разрешения (для android 6.0 и выше) должны быть заданы перед вызовом следующего действия. Но каждый раз, когда я пытаюсь, он переходит к следующему действию и возвращается, я вижу разрешения спрашивается. Есть ли способ запуска разрешений сначала, и только один раз, когда все закончится, перейдите к следующему действию?Как запустить функции Android в последовательном порядке?
ответ
Начните свою деятельность, только если разрешение предоставлено, иначе запрашиваете разрешение.
if(Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1){
// Use your own required permission here instead of WRITE_EXTERNAL_STORAGE
if(!(getActivity().checkSelfPermission("android.permission.WRITE_EXTERNAL_STORAGE") == PackageManager.PERMISSION_GRANTED)){
// Permission not already granted, Asking for permission
String[] perms = {"android.permission.WRITE_EXTERNAL_STORAGE"};
requestPermissions(perms, 200);
}else {
// Permission already granted, starting activity ...
Intent i = new Intent(getApplicationContext(), YourActivity.class);
startActivity(i);
}
}
onRequestPermissionsResult()
вызывается, когда разрешение предоставлено или отказано в диалоге пользователем. Это можно использовать для обработки события, когда пользователь выбирает параметр из приглашения на разрешение.
/**
Called when permission granted or denied
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode){
case 200:{
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
// Permission granted, starting activity ...
Intent i = new Intent(getApplicationContext(), YourActivity.class);
startActivity(i);
}else{
Toast.makeText(ctx, "Permission Denied by user. Please grant access to continue.", Toast.LENGTH_SHORT).show();
}
}
}
}
Можно ли предоставить разрешение (если разрешение не указано), а затем начать действие вместо того, чтобы помещать его в оператор else? –
Нет! Разрешение должно быть предоставлено/отклонено пользователем. Следовательно, его называют «разрешением». : D –
Я имел в виду, что, проверьте, предоставлены ли разрешения, дайте их, если они еще не пройдены, в противном случае пропустите. Затем немедленно начните деятельность –
- 1. Вычисления в последовательном порядке?
- 2. Количество в последовательном порядке
- 3. Анимация в последовательном порядке
- 4. Как запустить методы testNG из разных классов в последовательном порядке
- 5. Как отображать div в последовательном порядке?
- 6. Функции контроллера цепи/код в последовательном порядке и ошибки управления
- 7. Angularjs Как запустить функции в порядке?
- 8. Как запустить асинхронные функции Javascript в порядке
- 9. Процессы запуска/перезапуска Monit в последовательном порядке
- 10. Распечатайте вопросы в последовательном порядке в PHP
- 11. Выполнять все элементы цикла в последовательном порядке?
- 12. колонки заполнения CSS в последовательном порядке
- 13. Создание кнопок в последовательном порядке программным
- 14. Multiple JQuery обещает в последовательном порядке
- 15. Вложения Verilog в последовательном порядке всегда
- 16. Загрузить список изображений в последовательном порядке
- 17. Выполнение консольных приложений в последовательном порядке
- 18. TypScript не компилирует классы в последовательном порядке
- 19. Does Class.getDeclaredFields() возвращает члены в последовательном порядке?
- 20. Matlab: переименование файлов в последовательном порядке
- 21. Почему dup2 не встречается в последовательном порядке?
- 22. Обновление таблицы с записями в последовательном порядке
- 23. Divs скрывается и отображается в последовательном порядке
- 24. Как я могу выполнить массив обещаний в последовательном порядке?
- 25. Сортировка списка кортежей в последовательном порядке
- 26. Запросить отношения родитель-ребенок в последовательном порядке
- 27. Значения и ключи гарантированы в последовательном порядке?
- 28. не может выполнять инструкции в последовательном порядке при вызове одной функции из другой функции в javascript
- 29. Как запустить несколько класса с несколько тестом TestNG в последовательном порядке с использованием Maven на Java
- 30. Как запустить скрипты appion iphone в последовательном порядке на одной машине Mac на двух устройствах
будет отображаться всплывающее окно, если вы не дадите разрешение на предоставление. –
Диалог с разрешением приглашения, вероятно, начинается в порядке, но скрывается за новым действием, поэтому его видимость при закрытии нового действия. –