#react-native #geolocation #react-native-android
#геолокация #react-native
Вопрос:
Я пытаюсь получить доступ к местоположению. Я пробовал с обоими https://www.npmjs.com/package/react-native-geolocation-service и https://www.npmjs.com/package/@react-native-community/geolocation
Как это можно решить? Что-то не так с настройкой? или что-то не так с моим кодом? Хотя я много искал об этом и рассмотрел все решения, которые не могли помочь. Также пытался связать вручную, хотя автоматическое связывание включено в этой версии. Но не смог решить проблему. Есть ли какой-либо другой модуль для извлечения местоположения?
Я включил следующие строки в AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Моя конфигурация React
react-native-cli: 2.0.1
react-native: 0.62.2
react-native-community / geolocation: ^ 2.0.2
Если я включу свое местоположение вручную на мобильном телефоне, оно получит местоположение. И возможность получить местоположение в эмуляторе Android.
import React, { Component } from 'react';
import { View, PermissionsAndroid } from 'react-native';
import {
withTheme,
Appbar,
} from 'react-native-paper';
import Geolocation from '@react-native-community/geolocation';
// import Geolocation from 'react-native-geolocation-service';
import RNAndroidLocationEnabler from 'react-native-android-location-enabler';
class AddBill extends Component {
state = {
initialposition: [],
latitude: '',
logitude: '',
}
async componentDidMount() {
let granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("test")
let config = {
authorizationLevel: "auto"
}
Geolocation.setRNConfiguration(config);
Geolocation.getCurrentPosition(
(position) => {
console.log(position);
},
(error) => {
console.log(error);
},
{ enableHighAccuracy: true, timeout: 15000, maximumAge: 110000 }
);
} else {
console.log('Location permission not granted!!!!');
}
};
_back = () => {
this.props.navigation.goBack()
}
render() {
return (
<>
<Appbar.Header>
<Appbar.BackAction onPress={this._back} />
<Appbar.Content title="New Bill" />
</Appbar.Header>
<View></View>
</>
);
}
}
export default withTheme(AddBill);
react-native-geolocation-service: ^ 5.0.0
Та же ошибка после включения местоположения вручную
Комментарии:
1. можете ли вы предоставить полный код для Geolocation.getCurrentPosition (и всю его часть, включая импорт
2. @GauravRoy Я добавил код, пожалуйста, проверьте
Ответ №1:
Попробуйте добавить это в свое основное приложение.java, а затем создайте сборку и попробуйте
import com.agontuk.RNFusedLocation.RNFusedLocationPackage;
// добавить новый RNFusedLocationPackage() в
@override
protected List getPackages() {
return Arrays.asList(
new RNFusedLocationPackage()
);
}
Комментарии:
1. Уже включены вышеуказанные строки, но ручная привязка не требуется для 0.60 и выше справа.. В любом случае, у меня это не сработало
2. о, вы сделали новую сборку и попробовали это правильно?
3. да, я тоже перепробовал все варианты, доступные в Интернете:(
4. очень странный случай, тогда, если вы перепробовали все, я предлагаю поднять проблему в их репозитории github.
5. да, это выглядит правильно, код не проблема, вероятно, с собственными модулями библиотеки