如果设备睡眠,android gps位置服务关闭

时间:2015-04-20 09:23:31

标签: android service gps fusedlocationproviderapi

即使手机处于睡眠状态,我也需要在后台通过GPS /网络更新位置。
我实现了android服务来存档这个目标。但问题是当我将设备置于睡眠状态时,我通知通知栏中的GPS ICON随着位置更新不再起作用而消失。

如何在这种情况下保持GPS /网络位置更新?

P / S:我使用FusedLocationAPI和前台服务。提前致谢。
请注意GPS-ICON图像只提示通知栏中的图标,我仍然保持GPS提供商开启。

1 个答案:

答案 0 :(得分:4)

你应该获得一个唤醒锁:

    //in onCreate of your service
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    cpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
        "gps_service");
    cpuWakeLock.acquire();

    // Release in onDestroy of your service
    if (cpuWakeLock.isHeld())
      cpuWakeLock.release();

并将其添加到您的清单中:

<uses-permission android:name="android.permission.WAKE_LOCK" />

如果您需要连续的位置更新,则上述情况很好,但如果您不时需要地点,请查看:https://github.com/commonsguy/cwac-locpoll