Я создаю приложение, которое получает доступ к местоположению пользователя с помощью gps. Вот почему я добавил следующие строки в AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
И ниже моя функция, которая выбирает местоположение пользователя
componentWillMount(){
navigator.geolocation.getCurrentPosition(
position => {
this.setState({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
});
},
error => Alert.alert(error.message),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
);
}
Но это приводит к ошибке, что у приложения нет разрешения на доступ к местоположению, и мне нужно объявить
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
в файле манифеста. Я пробовал много способов и нашел решение, то есть запрос разрешения во время выполнения. Поэтому я также добавил следующие строки в свой код
try {
const granted = PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
{
'title': 'Location Permission',
'message': 'This app needs access to your location',
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("You can use the location")
} else {
console.log("Location permission denied")
}
} catch (err) {
console.warn(err)
}
Но проблема не уходит. Что мне делать?