Xamarin Android Разрешение на размещение Essentials - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать кроссплатформенное приложение Xamarin, а для версии Android требуется доступ к местоположению. Если пользователь выбирает «Не спрашивать снова» флажок, чтобы запретить разрешение на доступ к местоположению, Android больше не запрашивает доступ к местоположению. Пользователь должен вручную предоставить доступ из настроек телефона.

Есть ли способ проверить, выбрал ли пользователь «Больше не спрашивать» со страниц, отличных от MainActivity.cs ? Когда пользователь снова входит в систему, я хотел бы отобразить предупреждение для пользователя, если он выбрал «Больше не спрашивать» .

Я обнаружил, что ShouldShowRequestPermissionRationale () - единственный способ узнать, выбрал ли пользователь «Больше не спрашивать» . Но похоже, что этот метод можно вызвать только из MainActivity.cs .

1 Ответ

0 голосов
/ 07 мая 2020

Но похоже, что этот метод может быть вызван только из MainActivity.cs.

Вы можете вызывать метод в каждом действии, включенном во фрагмент.

Например

в Activity :

 // Here, thisActivity is the current activity

if (ActivityCompat.ShouldShowRequestPermissionRationale(thisActivity,Manifest.Permission.WriteExternalStorage))
    {
       // Show an explanation to the user *asynchronously* -- don't block
       // this thread waiting for the user's response! After the user
       // sees the explanation, try again to request the permission.   
    }

вы можете посмотреть Объясните, почему приложению требуются разрешения

в Фрагмент (поддержка v4):

if (ShouldShowRequestPermissionRationale(Manifest.Permission.WriteExternalStorage))
    {

    }

вы можете посмотреть здесь

и есть изменения в других пакетах, например, в (поддержка v13)

boolean shouldShowRequestPermissionRationale (Fragment fragment, 
            String permission)

вы можете посмотреть здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...