Android 11 (R) - спрашивать разрешение каждый раз - отказано

Статус Permission Denied возвращается при установке для разрешения микрофона значения «Спрашивать каждый раз» в информации о приложении - ›Разрешения -› Микрофон - ›Спрашивать каждый раз.

Следующий код возвращает значение "Отклонено"

ContextCompat.CheckSelfPermission(Application.Context, Manifest.Permission.RecordAudio);

Статус «Разрешение предоставлено» возвращается при установке для разрешения микрофона значения «Спрашивать каждый раз» из диалогового окна разрешений системы времени выполнения.

Установка разрешения в настройках устройства также должна давать статус разрешения как «Разрешено».

Не могли бы вы помочь?

Эта проблема возникает в Xamarin.Android.


person Ranjit    schedule 08.10.2020    source источник
comment
Добро пожаловать в SO! Как вы сказали, это не проблема. Если установлен параметр «Спрашивать каждый раз», приложение должно запрашивать каждый раз, оно будет возвращать статус «Разрешено». В противном случае каждый раз будет возвращать статус Denied. Следовательно, вам необходимо запросить разрешение во время выполнения. docs.microsoft.com/en-us/xamarin/essentials/   -  person Junior Jiang    schedule 08.10.2020
comment
@ JuniorJiang-MSFT, тогда он должен вести себя так же, когда я даю разрешение «Спрашивать каждый раз» из диалогового окна запроса разрешения системы времени выполнения, правильно? Хотя я даю разрешение «Спрашивать каждый раз» из диалогового окна запроса разрешения системы времени выполнения. Я получаю разрешение как «Разрешено» даже после завершения работы и перезапуска приложения. И у Android 11 есть ограничение на отображение диалогового окна запроса разрешения системы. Будет показано диалоговое окно запроса разрешения системы выполнения только два раза (приблизительно).   -  person Ranjit    schedule 08.10.2020
comment
Привет, из информации о приложении - ›Разрешения -› Микрофон - ›Спрашивать Каждый раз это означает, что у приложения нет разрешения, и просто выберите конфигурацию для разрешения. Однако из диалогового окна разрешений системы времени выполнения, которое означает, что вы запрашиваете разрешение . Как только вы выберете «Спрашивать каждый раз во время выполнения», он тем временем получит разрешение. По-другому обстоит дело с настройками мобильного телефона.   -  person Junior Jiang    schedule 09.10.2020
comment
@ JuniorJiang-MSFT Спасибо за обновление.   -  person Ranjit    schedule 28.10.2020
comment
Хорошо, если будет полезно. Не могли бы вы обновить это как ответ?   -  person Junior Jiang    schedule 29.10.2020
comment
@ JuniorJiang-MSFT Окей   -  person Ranjit    schedule 10.11.2020
comment
Привет, я обновил его как ответ. Не забудьте отметить ответ, когда у вас будет время, это поможет другим, у кого есть аналогичная проблема.   -  person Junior Jiang    schedule 11.11.2020


Ответы (1)


Из Информация о приложении - ›Разрешения -› Микрофон - ›Спрашивать каждый раз, это означает, что у приложения нет разрешения, и просто выберите настройку для разрешения. Однако из диалогового окна разрешений системы времени выполнения, которое означает, что вы запрашиваете разрешение. Как только вы выберете Спрашивать каждый раз во время выполнения, он тем временем получит разрешение. Иначе обстоит дело с настройками мобильного устройства.

Если установлен параметр Спрашивать каждый раз, приложение должно запрашивать каждый раз, оно будет возвращать статус Разрешено. В противном случае каждый раз будет возвращать статус Отклонено. Поэтому вам необходимо запросить разрешение во время выполнения.

person Junior Jiang    schedule 11.11.2020