如何在Android中实现每秒至少10次的GPS位置更新?
摩托车(或其他行驶装置)加速/制动测量Activity开发说明
我开发了一个用于测量摩托车(或其他行驶装置)加速或制动情况的Activity,因此需要每秒至少10次的位置更新。
当前位置更新实现方案
1. 请求位置更新代码
m_locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 50, (float) 0.1, m_locationListener);
2. 定时器获取位置代码
public void createGpsTimer( int interval ) { if (m_gpsTimer!=null) { m_gpsTimer.cancel(); } if( interval > 0 ) { m_gpsInterval = interval; m_gpsTimer = new CountDownTimer(100000000, interval) { private Location m_lastKnown=null; @Override public void onTick(long millisUntilFinished) { Location newLocation = m_locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (newLocation != null && (m_lastKnown==null || !m_lastKnown.equals(newLocation))) { lockLocationChanged(newLocation); } } @Override public void onFinish() { m_gpsTimer.start(); } }.start(); } else { m_gpsTimer = null; m_gpsInterval = 0; } }
我期望通过getLastKnownLocation实现10Hz的位置更新频率。
测试设备
- Samsung S5 Mini(Android 6)
- Samsung Galaxy Tab A8(Android 9)
- Fairphone 3(Android 13)
- Samsung Galaxy Tab S9(Android 14)
内容的提问来源于stack exchange,提问作者Martin Gäeckler
相关产品推荐
相关产品推荐

