【发布时间】:2012-05-31 15:48:18
【问题描述】:
我正在开发一个使用 gps 的应用程序,该应用程序在应用程序投入使用之前一直运行。我的 GPS 在 5 分钟后唤醒并获取位置,然后它的符号停止闪烁并在几乎所有设备(Sony xperia、Samsung tab、Htc WildFire、Motorola photon)中不可见,但在 Motorola Defy 和 Samsung Ace 中不可见,它们会消耗大量电池电量. GPS得到修复并始终保持稳定和可见。这些设备(Moto Defy 和三星 Ace)的 GPS 工作方式不同。看我的代码:
long _listenerWakeUpTimeInterval=1000*60*5;** //5 minutes
_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, _listenerWakeUpTimeInterval, 300, locationListener);
所有设备的 GPS 会在 5 分钟后唤醒,但这两款设备(Moto Defy 和三星 Ace)的 GPS 每 300 米调用一次onLocationChanged(Location loc) 方法。对于这两种设备来说,时间并不重要。当我快速(在汽车中)旅行时,这个距离在几分钟(1 或 2 分钟)内完成。所以我接到了onLocationChanged(Location loc) 方法的电话。在这些设备中,GPS 始终是固定的、静态的和可见的。我不想每次 GPS 得到修复时都调用 locationManager.removesupdates 方法。我只在服务的onDestroy() 中调用此方法。那么请说明为什么这两款设备的 GPS 与其他设备的行为不同,以及如何解决这个问题?
【问题讨论】:
标签: android geolocation gps locationlistener