12

我必须从与 GPS 一起使用的其他平台对 Android 进行编程。在其他平台上,我可以访问 GPS HW(我有一个低级 GPS 驱动程序),因此我可以每秒获得 5 次甚至更多的 GPS 更新现在我使用三星 Galaxy S2(我很清楚它的 GPS 非常强大,每秒可以提供多次更新目前,当我将 GPS 提供程序设置为以最短距离和最短时间提供更新时,如下所示:

mlocManager.requestLocationUpdates( 
    LocationManager.GPS_PROVIDER, 0, 0, mlocListener
); 

我每秒获得 1 次更新(或两次更新之间的最小间隔为 800 毫秒),这对于我的应用程序来说太低了。有没有办法强制 GPS HW 以某种方式报告更多更新?我想它不会暴露给用户,但还有一些方法可以以某种方式访问​​ GPS HW 的寄存器吗?

4

1 回答 1

4

目前,在大多数手机中,您无法以每秒一次的速度获得更新。这是硬件 gps 限制。

通常在大多数手机中,它是 1hz。

这完全取决于您使用的硬件和场景(室内、室外)

但同样,你可以检查使用

LocationRequest setFastestInterval (long millis)

这允许您的应用程序以比主动获取位置更快的速度被动获取位置,从而节省电力。

与 setInterval(long) 不同,此参数是精确的。您的应用程序接收更新的速度永远不会超过此值。

此方法设置您的应用可以处理位置更新的最快速率(以毫秒为单位)。您需要设置此速率,因为其他应用程序也会影响发送更新的速率。位置服务以任何应用程序调用 LocationRequest.setInterval() 请求的最快速度发送更新。

如果此速率快于您的应用程序可以处理的速度,您可能会遇到 UI 闪烁或数据溢出的问题。

于 2014-01-28T06:27:56.317 回答