我正在使用 GPS 提供程序和 LocationListener.onLocationChanged(Location location) 来接收位置修复。
文档说, Location.getExtras() 包含下一个键/值对:
卫星 - 用于得出修复的卫星数量
但是在实践中,我得到了一个空的额外对象-那里没有任何数据。
这是否意味着我得到的是 A-GPS 修复而不是 GPS?
要获得 GPS 引擎使用的卫星数量,您需要实现android.location.GpsStatus.Listener
并实现其方法onGpsStatusChanged()
。
例子...
public void onGpsStatusChanged(int event) {
int satellites = 0;
int satellitesInFix = 0;
int timetofix = locationManager.getGpsStatus(null).getTimeToFirstFix();
Log.i(TAG, "Time to first fix = " + timetofix);
for (GpsSatellite sat : locationManager.getGpsStatus(null).getSatellites()) {
if(sat.usedInFix()) {
satellitesInFix++;
}
satellites++;
}
Log.i(TAG, satellites + " Used In Last Fix ("+satellitesInFix+")");
}
我使用 Location.getExtras().getInt("satellites"),它给出了正在使用的卫星数量。
不,这意味着您的手机制造商决定不实施此功能。(或者你可以使用NETWORK_PROVIDER
不使用卫星的)
使用 aNmeaListener
并解析句子以了解可见或使用的卫星数量。