6

我正在使用 GPS 提供程序和 LocationListener.onLocationChanged(Location location) 来接收位置修复。
文档说, Location.getExtras() 包含下一个键/值对:

卫星 - 用于得出修复的卫星数量

但是在实践中,我得到了一个空的额外对象-那里没有任何数据。
这是否意味着我得到的是 A-GPS 修复而不是 GPS?

4

3 回答 3

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+")"); 
}
于 2012-09-28T11:58:30.407 回答
12

我使用 Location.getExtras().getInt("satellites"),它给出了正在使用的卫星数量。

于 2013-11-13T15:09:59.497 回答
1

不,这意味着您的手机制造商决定不实施此功能。(或者你可以使用NETWORK_PROVIDER不使用卫星的)

使用 aNmeaListener并解析句子以了解可见或使用的卫星数量。

于 2011-07-05T09:48:45.207 回答