Я создаю приложение в React-Native и мне нужен доступ к местоположению в соответствии с требованием.
Я попытался использовать react-native-fused-location
для того же, что и ниже.
FusedLocation.setLocationInterval(20000);
FusedLocation.setFastestLocationInterval(15000);
FusedLocation.setSmallestDisplacement(10);
FusedLocation.setLocationPriority(
FusedLocation.Constants.HIGH_ACCURACY
);
FusedLocation.startLocationUpdates();
FusedLocation.getFusedLocation().then(location => {
if (location != null) {
let initialPosition = JSON.stringify(location);
this.state.latitude = location.latitude;
this.state.longitude = location.longitude;
this.state.timestamp = location.timestamp;
this.state.initialPosition = initialPosition;
} else {
alert("Location unavailable, please try later");
}
}).catch(error => { // fused location catch
console.log("location retrieval failed");
});
Единственный вывод, который я получаю с вышеуказанным кодом, в случае Oreo 8.0.0 - это E / request: 100 .
также пробовал другойкак показано ниже
navigator.geolocation.watchPosition(
location => {
console.log("inside watchPosition location");
if (location != null) {
console.log("location is not null");
let initialPosition = JSON.stringify(location.coords);
this.state.latitude = location.coords.latitude;
this.state.longitude = location.coords.longitude;
this.state.timestamp = location.coords.timestamp;
this.state.initialPosition = initialPosition;
} else {
alert("Location unavailable, please try later");
}
},
error => {
console.log("calling ShowHideActivityIndicator, getLocationWithNavigate (ios)");
this.ShowHideActivityIndicator(false);
alert("location retrieval failed");
console.log(error);
},
{ timeout: 20000, enableHighAccuracy: true, distanceFilter: 10 }
);
Но при получении одинаковых выходных данных в обоих вышеприведенных кодах невозможно получить конкретное местоположение в Android Oreo 8.0.0 .Даже обратный вызов для определения местоположения даже не вызывается.Хотя в других версиях, включая Oreo 8.1.0 , и в устройствах более низкой версии, включая Marshmallow и Nougat, все работает нормально.
Хотя, если я включу фальшивый GPS в Oreo 8.0.0 , то, похоже, он сможет определить местоположение.Я не могу понять, чего мне не хватает.