Отреагировать нативную фона геолокацию, а не работатьAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Отреагировать нативную фона геолокацию, а не работать

Сообщение Anonymous »

Я попытался найти бесплатное решение для расположения фонового расположения для приложения Android RN и использовал эту Lib. Я использовал этот код: < /p>
useEffect(() => {
Geolocation.setRNConfiguration({
skipPermissionRequests: false,
locationProvider: 'android',
})

Geolocation.watchPosition(
({ coords: { latitude: lat, longitude: lon }}) => {
// my code here...
},
(error) => console.error(error),
{ interval: 1000, enableHighAccuracy: true, distanceFilter: 1 },
)
}, [])

Он работает нормально, но только приложение находится в фокусе.
Фоновое приложение не смотрит на позицию. /> Я попробовал несколько альтернативных либеров, но они устарели или не работают на фоне. https://docs.expo.dev/versions/latest/sdk/location.
для Bare React Нативные используйте эти инструкции для установки модуля Expo https://docs.expo.dev/bare/installing-expo-modules координаты): < /p>
import { useEffect } from 'react'
import type { FC } from 'react'
import * as Location from 'expo-location'
import * as TaskManager from 'expo-task-manager'

const App: FC = () => {
// ... prev code

useEffect(() => {
(async () => {
let { status } = await Location.requestForegroundPermissionsAsync()

if (status !== 'granted') {
console.error('Permission to access location was denied')
return
}

TaskManager.defineTask('WATCH_BG_GEO', ({ data: { locations }, error }) => {
if (error) return

//
// Your logic on change geolocation will be here
//

// Example - get lon and lat
const newCoords = {
lat: locations[0].coords.latitude,
lon: locations[0].coords.longitude,
}

// Still works in background mode!!
})

// Handler for changing geolocation
Location.startLocationUpdatesAsync('WATCH_BG_GEO', {
accuracy: Location.Accuracy.BestForNavigation,
showsBackgroundLocationIndicator: true,
timeInterval: 1000,
activityType: Location.ActivityType.AutomotiveNavigation,
distanceInterval: 1,
foregroundService: {
notificationTitle: 'GPS',
notificationBody: ' enabled',
}
})
})()
}, [])

return (
// ...
)
}



Подробнее здесь: https://stackoverflow.com/questions/763 ... n-not-work
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отреагировать нативную ошибку сборки Неизвестный модуль не определен
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Отреагировать нативную лыж, чтобы увеличить жест
    Anonymous » » в форуме Javascript
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Почему Emulation.setGeolocationOverride не устанавливает указанную геолокацию в моем браузере с помощью Selenium CDP
    Anonymous » » в форуме JAVA
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Запрос на геолокацию может быть выполнен только в безопасном контексте
    Anonymous » » в форуме Html
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • IOS Mobile не спрашивает разрешение на геолокацию
    Anonymous » » в форуме Html
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»