6
votes

Obtenir le nombre de satellites à partir de l'objet de localisation

J'utilise un fournisseur GPS et LocationListener.OnlocationChanged (emplacement de localisation) pour recevoir des correctifs de localisation.
Documentation dit, cet emplacement.getextras () Contient une touche NEXTE / PAIRE VALEUR:

satellites - le nombre de satellites utilisées pour dériver la solution

Mais sur la pratique, je reçois un objet supplémentaire vide - il n'y a pas de données là-bas.
Cela signifie-t-il que je reçois les correctifs A-GPS et non GPS?


0 commentaires

3 Réponses :


1
votes

Nope Cela signifie que votre fabricant de téléphone a décidé de ne pas la mettre en œuvre. (Ou vous pouvez utiliser le Network_Provider qui n'utilise pas satellites)

Utilisez un Nmealistener et analyser les phrases pour connaître le nombre de satellites visibles ou utilisés.


3 commentaires

J'utilise définitivement GPS_Provider. Il y a une chance que Samsung ne soit pas mis en œuvre cela à Nexus S?


Vous devriez être capable de l'obtenir à l'aide de [Bundle.get ("satellites")] ( développeur.android.com/referenc e / android / os / ... . Êtes-vous sûr que vous obtenez des corrections? Utilisez l'auditeur NMEA et regardez le Phrases GPGSV


Vous avez raison, emplacement.getextras (). Getint ("satellites") supposons renvoyer le nombre de satellites. Mais ce n'est pas - je reçois toujours un zéro là-bas malgré le fait que l'objet de localisation lui-même contient une coordonnée valide



21
votes

Pour obtenir le nombre de satellites utilisés par le moteur GPS, vous devez implémenter android.location.gpstatus.listener code> et implémenter sa méthode OngpsStatuschanged () code>.

. Exemple ... P>

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+")"); 
}


2 commentaires

Je ne comprends pas pourquoi j'ai besoin de mettre en œuvre un auditeur si je veux sonder pour le nombre de satellites ... pour essayer d'appeler Getsatellites () sans mettre en place un auditeur ne renvoie toujours aucun satellite, même lorsqu'un GPS a une solution et est verrouillé.


Il est très important d'ajouter l'auditeur au gestionnaire de localisation comme emplacementmanager.addgpsstatuslistener (); ou bien l'auditeur ne sera pas appelé.



12
votes

J'utilise l'emplacement.getextras (). Geint ("satellites"), et il donne le nombre de satellites en cours d'utilisation.


0 commentaires