我正在使用GPS提供商和LocationListener.onLocationChanged(位置位置)来接收位置修复。
Documentation说,Location.getExtras()包含下一个键/值对:
卫星 - 用于导出修复的卫星数量
但是在练习中我得到一个空的额外物体 - 那里没有任何数据 这是否意味着我正在获得A-GPS修复而不是GPS?
答案 0 :(得分:21)
要获取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+")");
}
答案 1 :(得分:7)
我使用Location.getExtras()。getInt(“satellites”),它给出了正在使用的卫星数量。
答案 2 :(得分:1)
不,这意味着您的手机制造商决定不执行此操作。 (或者你可以使用不使用卫星的NETWORK_PROVIDER
)
使用NmeaListener
并解析句子以了解可见或使用的卫星数量。