在测试位置服务时遇到问题。我不能让他们不工作
Having issues testing location services. I can't make them NOT to work
我使用 FusedLocationProviderApi 实现了获取位置更新。
当应用不是 运行.
时,我需要在后台跟踪设备位置
我遵循了教程,我有一个服务,我在其中调用 requestLocationUpdates
以启动服务。
我故意不实施保持唤醒锁定只是为了测试并查看当屏幕关闭时设备停止获取位置更新。一旦我确认我可以去实施唤醒锁并期望相反的结果,即看到它工作。
我使用了两种设备:Google 带有 KitKat 的 Nexus 10 和带有 Lollipop 的三星 Galaxy A5 (2016)。
在这两种设备上,它都在不断发送更新(我正在将更新发送到网站)。
我在关闭屏幕的情况下进行了测试,将设备放在桌子上一分钟,然后再次在屋子里走来走去。
我知道 Android 6 和 Doze 模式限制更多,但我想了解它在 Android 4.4 和 Android 5 上的工作原理。
太令人沮丧了!有什么想法可以让设备真正进入睡眠模式,这样我就可以看到位置更新停止工作了吗?
有趣的是,我读过的所有内容都是关于让它发挥作用的:)
编辑:我很困惑为什么即使使用如下激进的位置更新设置,在屏幕关闭时获取位置更新仍然有效:
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setFastestInterval(2);
locationRequest.setInterval(1000);
关于请求位置更新的事情是,在这一切之下,LocationManager
使用的 LocationManagerService
实际上创建并获取了它自己的唤醒锁。所以从技术上讲,只要您注册了一个位置侦听器以主动接收 GPS,您的设备就永远不会进入睡眠状态。现在,我知道您正在使用 Google 的 FusedLocationApi
,但在这一切之下,它确实使用了 LocationManager
。如果您有兴趣更好地理解位置代码,这里是 LocationManagerService
.
的源代码
我使用 FusedLocationProviderApi 实现了获取位置更新。 当应用不是 运行.
时,我需要在后台跟踪设备位置我遵循了教程,我有一个服务,我在其中调用 requestLocationUpdates
以启动服务。
我故意不实施保持唤醒锁定只是为了测试并查看当屏幕关闭时设备停止获取位置更新。一旦我确认我可以去实施唤醒锁并期望相反的结果,即看到它工作。
我使用了两种设备:Google 带有 KitKat 的 Nexus 10 和带有 Lollipop 的三星 Galaxy A5 (2016)。
在这两种设备上,它都在不断发送更新(我正在将更新发送到网站)。 我在关闭屏幕的情况下进行了测试,将设备放在桌子上一分钟,然后再次在屋子里走来走去。
我知道 Android 6 和 Doze 模式限制更多,但我想了解它在 Android 4.4 和 Android 5 上的工作原理。
太令人沮丧了!有什么想法可以让设备真正进入睡眠模式,这样我就可以看到位置更新停止工作了吗?
有趣的是,我读过的所有内容都是关于让它发挥作用的:)
编辑:我很困惑为什么即使使用如下激进的位置更新设置,在屏幕关闭时获取位置更新仍然有效:
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setFastestInterval(2);
locationRequest.setInterval(1000);
关于请求位置更新的事情是,在这一切之下,LocationManager
使用的 LocationManagerService
实际上创建并获取了它自己的唤醒锁。所以从技术上讲,只要您注册了一个位置侦听器以主动接收 GPS,您的设备就永远不会进入睡眠状态。现在,我知道您正在使用 Google 的 FusedLocationApi
,但在这一切之下,它确实使用了 LocationManager
。如果您有兴趣更好地理解位置代码,这里是 LocationManagerService
.