我从其他用于GPS的平台上编程Android.在其他平台上我可以访问GPS HW(我有一个低级别的GPS驱动程序),我可以每秒5次获得GPS更新甚至更多现在我使用三星Galaxy S2(我很清楚它的GPS非常强大,可以每秒提供多次更新目前,我设置GPS提供商以提供最小距离和最短时间的更新,如下所示:
mlocManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 0, mlocListener
);
Run Code Online (Sandbox Code Playgroud)
我得到每秒1次更新(或两次更新之间的最小间隙为800ms),这对我的应用来说太低了.有没有办法迫使GPS硬件以某种方式报告更多更新?我想它不会暴露给用户但是仍然有某种方式以某种方式访问GPS HW的寄存器?
目前,大多数手机的更新速度不能超过每秒一次。这是硬件 GPS 限制。
通常在大多数手机中,频率为 1hz。
这完全取决于硬件和您使用的场景(室内、室外)
但同样,你可以检查使用
LocationRequest setFastestInterval (long millis)
Run Code Online (Sandbox Code Playgroud)
这允许您的应用程序以比主动获取位置更快的速度被动获取位置,从而节省电量。
与 setInterval(long) 不同,此参数是精确的。您的应用程序接收更新的速度永远不会快于该值。
此方法设置应用程序可以处理位置更新的最快速率(以毫秒为单位)。您需要设置此速率,因为其他应用程序也会影响发送更新的速率。位置服务以任何应用程序通过调用 LocationRequest.setInterval() 请求的最快速率发送更新。
如果此速率快于您的应用程序的处理能力,您可能会遇到 UI 闪烁或数据溢出的问题。