【问题标题】:Location in Background With Plugin in App phonegap cordova for android在后台使用插件在 App phonegap cordova for android 中定位
【发布时间】:2017-06-21 19:47:30
【问题描述】:

好社区,我目前正在使用https://www.npmjs.com/package/cordova-plugin-gpslocation插件在应用程序处于前台和后台时对设备进行地理定位,在后台时我使用OnPause方法并执行一个setInterval来执行插件的方法来每 X 次获取坐标(GetCurrentPosition)。我的问题是,当屏幕打开时它可以正常工作并且位置图标出现在通知栏中,但是当屏幕关闭时它似乎停止工作并且只有在我打开屏幕时才重新捕获坐标。

我在Android平台的Android Manifest中拥有以下权限,除了我在清单中的activity标签中添加了属性。

<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 ">

如果有人可以帮助我,我将不胜感激,或者如果您需要在清单中添加一些其他属性或其他内容,非常感谢。

【问题讨论】:

    标签: android cordova background geolocation phonegap


    【解决方案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 });

    这可以节省大量电池,并且还可以根据间隔和距离工作。 仅在设备经过一定距离和/或在指定时间进行采样。 当应用程序进入后台时,这将起作用.. 感谢和愉快的编码:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      相关资源
      最近更新 更多