Не работает гео-локация
Поставили в react native пакет react-native-location, тестировали изначально только на ios - все работает, зашли через android с телефона и с эмулятра и проблема... Сработало при входе в приложение, отдало локацию, но при передвижении - ничего не работает. Хотя на IOS все нормально до сих пор. Проблема висит уже 2 месяца примерно, решить сами никак не можем.
AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESSCOARSELOCATION"/>
<uses-permission android:name="android.permission.ACCESSFINELOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
App.js
useEffect(() => {
GetLocation(OtherData, setOtherData)
}, [])
GetLocation.js
import RNLocation from 'react-native-location';
import { SendLocation } from '../Models/actions'
export const GetLocation = (OtherData, setOtherData) => {
RNLocation.configure({
distanceFilter: 10,
desiredAccuracy: {
ios: "best",
android: "balancedPowerAccuracy"
},
// Android only
androidProvider: "auto",
interval: 15000, // Milliseconds
fastestInterval: 20000, // Milliseconds
maxWaitTime: 15000, // Milliseconds
// iOS Only
activityType: "other",
allowsBackgroundLocationUpdates: true,
headingFilter: 1, // Degrees
headingOrientation: "portrait",
pausesLocationUpdatesAutomatically: true,
showsBackgroundLocationIndicator: true,
})
RNLocation.requestPermission({
ios: "always",
android: {
detail: "coarse"
}
}).then((granted) => {
if (granted) {
RNLocation.subscribeToLocationUpdates(locations => {
console.log("locations", locations[0].longitude)
SendLocation({
lat: locations[0].latitude,
lon: locations[0].longitude
}, {})
.then((r) => {console.log("RNLocation -- SendLocation: ", r)})
.catch((e) => {console.log("RNLocation -- SendLocation -- err: "+ e)})
setOtherData({
...OtherData,
location: locations
})
})
}
})
}
Источник: Stack Overflow на русском