Получение количества спутников от объекта Location - PullRequest
6 голосов
/ 05 июля 2011

Я использую поставщика GPS и LocationListener.onLocationChanged (Location location) для получения исправлений местоположения.
Документация говорит, что Location.getExtras () содержит следующую пару ключ / значение:

спутников - количество спутников, использованных для получения исправления

, но на практике я получаю пустой дополнительный объект - там нет никаких данных.
это значит, что я получаю исправления A-GPS, а не GPS?

Ответы [ 3 ]

21 голосов
/ 28 сентября 2012

Чтобы получить количество спутников, используемых движком 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+")"); 
}
7 голосов
/ 13 ноября 2013

Я использую Location.getExtras (). GetInt ("спутники"), и он дает количество используемых спутников.

1 голос
/ 05 июля 2011

Нет, это означает, что производитель вашего телефона решил не реализовывать это. (Или вы можете использовать NETWORK_PROVIDER, который не использует спутники)

Используйте NmeaListener и проанализируйте предложения, чтобы узнать количество видимых или использованных спутников.

...