android 如果设备处于休眠状态,GPS 定位服务将关闭
android gps location in service off if device sleep
即使 phone 处于睡眠状态,我也需要在后台通过 GPS/Network 更新位置。
我实施 android 服务来实现该目标。但问题是当我将设备置于睡眠状态时,我通知通知栏中的 GPS ICON 消失了,因为位置更新不再起作用。
在这种情况下如何保持 GPS/Network 位置更新?
P/S:我使用FusedLocationAPI和前台服务。提前致谢。
请注意,GPS-ICON 图像仅在通知栏中提及图标,我仍然保持 GPS 提供商打开。
您应该获得一个唤醒锁:
//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
即使 phone 处于睡眠状态,我也需要在后台通过 GPS/Network 更新位置。
我实施 android 服务来实现该目标。但问题是当我将设备置于睡眠状态时,我通知通知栏中的 GPS ICON 消失了,因为位置更新不再起作用。
在这种情况下如何保持 GPS/Network 位置更新?
P/S:我使用FusedLocationAPI和前台服务。提前致谢。
请注意,GPS-ICON 图像仅在通知栏中提及图标,我仍然保持 GPS 提供商打开。
您应该获得一个唤醒锁:
//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