Расположение в фоновом режиме с помощью плагина в приложении phonegap cordova для Android

Хорошее сообщество, в настоящее время я использую https://www.npmjs.com/package/cordova-plugin-gpslocation для геолокализации устройства, когда приложение находится на переднем и заднем плане, когда в фоновом режиме я использую метод OnPause и выполняю setInterval для выполнения метода плагина для получения координат каждый X раз (Получить текущее положение). МОЯ ПРОБЛЕМА заключается в том, что когда экран включен, он работает отлично, и значок «Местоположение» появляется в панели уведомлений, но когда экран выключен, он, кажется, перестает работать и только заново захватывает координаты, когда я включаю экран.

У меня есть следующие разрешения в манифесте Android, который находится на платформе Android, кроме того, что я добавил свойство в тег активности также в манифест.

<Uses-permission android: name = "android.permission.ACCESS_FINE_LOCATION" />
<Uses-permission android: name = "android.permission.ACCESS_COARSE_LOCATION" />
<Uses-permission android: name = "android.permission.AUTHENTICATE_ACCOUNTS" />
<Uses-permission android: name = "android.permission.GET_ACCOUNTS" />
<Uses-permission android: name = "android.permission.READ_SYNC_SETTINGS" />
<Uses-permission android: name = "android.permission.WRITE_SYNC_SETTINGS" />
<Uses-permission android: name = "android.permission.RECEIVE_BOOT_COMPLETED" />
<Uses-permission android: name ="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
    <Uses-permission android: name = "android.permission.ACCESS_NETWORK_STATE" />
    <Uses-permission android: name = "android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <Uses-permission android: name = "android.permission.WAKE_LOCK" />
    <Uses-permission android: name = "android.hardware.location" />

 <Activity <span style = "text-decoration: underline;"> android: alwaysRetainTaskState = "true" android: configChanges = "orientation | keyboardHidden | keyboard | screenSize | locale" android: label = "@ string / activity_name "Android: launchMode =" singleTop "android: name =" MainActivity "android: theme =" @ android: style / Theme.DeviceDefault.NoActionBar "android: windowSoftInputMode =" adjustResize ">

Если кто-то может мне помочь, я был бы признателен, или если вам нужно добавить какое-то другое свойство в манифест или что-то еще, большое спасибо.


person Daniel Toro    schedule 21.06.2017    source источник


Ответы (1)


Похоже, что плагин работает только в активном состоянии. Только плагины с фоновым отслеживанием работают так, как вы ожидаете. Таких плагинов много. Позвольте мне дать вам тот, который я использую https://www.npmjs.com/package/cordova-plugin-mauron85-background.-geolocation

backgroundGeolocation.configure(callbackFn, failureFn, { desiredAccuracy: 10, // for accuracy stationaryRadius: 20, distanceFilter: 30, // minimum distance threshold
interval: 60000 });

Это значительно экономит заряд батареи, а также работает на основе интервалов и расстояний. берет образец только тогда, когда устройство пересекает некоторое расстояние и / или в указанное время. Это будет работать, когда приложение переходит в фоновый режим. Спасибо и удачного кодирования :)

person Surya Krishy    schedule 23.06.2017