从我的Android中的GPS硬件获得最高的GPS更新率

时间:2013-07-24 06:55:11

标签: android gps rate

我从我用于GPS的其他平台编程Android。在其他平台上我可以访问GPS硬件(我有一个低级GPS驱动程序),我可以获得每秒5次GPS更新甚至更多 现在我使用三星Galaxy S2(我很清楚它的GPS非常强大,可以每秒提供几次更新 目前,我设置GPS提供商以提供最小距离和最短时间的更新,如下所示:

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

我每秒获得1次更新(或两次更新之间的最小间隙为800ms),这对我的应用来说太低了。有没有办法迫使GPS硬件以某种方式报告更多更新?我想它不会暴露给用户,但仍然有某种方式以某种方式访问​​GPS HW的寄存器?

1 个答案:

答案 0 :(得分:4)

目前,大部分手机都无法以每秒一次的速度获得更新。这是硬件gps限制。

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

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

但同样,您可以使用

进行检查
LocationRequest setFastestInterval (long millis)

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

与setInterval(long)不同,此参数是精确的。您的应用程序永远不会比此值更快地收到更新。

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

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