Не работает гео-локация

Рейтинг: 0Ответов: 0Опубликовано: 09.02.2023

Поставили в 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
                })
            })
        }
    })
}

Ответы

Ответов пока нет.