React-native: - Диалог разрешения местоположения не работает - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу включить местоположение моего устройства (android pie).Я прочитал документацию Permissions ofact-native, а затем попытался реализовать ее, но каждый раз, когда в ней говорится «Отказано в доступе».Я даже пытался использовать внешнюю библиотеку (реакции-нативные-разрешения), тогда она говорит: - «неопределено: пользователь еще не получил диалоговое окно с разрешениями».Я дал разрешения (FINE_LOCATION и COARSE_LOCATION) также в манифесте.Я даже пытался дать разрешение вручную в разрешениях приложения, но все же он говорит, что разрешение отклонено.Как я могу включить местоположение.

Вот код:

async requestLocationPermission() {
try {
  const granted = await PermissionsAndroid.request(
    PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
    {
      title: "Example App",
      message: "Example App access to your location "
    }
  );
  if (granted === PermissionsAndroid.RESULTS.GRANTED) {
    console.log("You can use the location");
    alert("You can use the location");
  } else {
    console.log("location permission denied");
    alert("Location permission denied");
  }
} catch (err) {
  console.warn(err);
}
}

вызов его в componentDidMount:

componentDidMount(){
this.requestLocationPermission();
}

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Я знаю, это звучит немного странно ...

Попробуйте открыть Google Карты.Диалог иногда будет появляться.

Буквально, это мой ответ!

0 голосов
/ 08 января 2019

Используете ли вы эмулятор, службы определения местоположения вообще не работают на эмуляторах Android, в отличие от iOS, которая его высмеивает.

установите «response-native-device-info» и проверьте, является ли его эмулятором Android, перед использованием службы определения местоположения

0 голосов
/ 08 января 2019

Я сделал то же самое.Добавлены FINE_LOCATION и COARSE_LOCATION в файле AndroidManifest.xml.И написанный выше фрагмент кода, как и вы.

Затем я также получил сообщение Отказано в разрешении .

Затем я открыл AndroidStudio и выполнил очистку и сборку.Удалил приложение из эмулятора и снова запустил его, response-native run-android. Затем открылось диалоговое окно «Местоположение».

...