2 votes

Recherche du meilleur fournisseur d'applications Android

J'essaie de trouver le meilleur fournisseur dans le cas suivant :

// GPS
    case R.id.main_menu_gps:

        // Set up location services
        mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        mBestProvider = mLocationManager.getBestProvider(new Criteria(), true);
        Log.d(DEB_TAG, "@@@@Value of mBestProvider is " + mBestProvider);

        if(mBestProvider != null){
            showGpsSearchingDialog();
            mLocationManager.requestLocationUpdates(mBestProvider, 150000, 1, this);
        } else {
            Log.d(DEB_TAG, "Provider is null");
            showGpsAlertDialog();
        }

    break;

Mon appareil indique "GPS" comme étant le meilleur fournisseur, mais il n'est pas en mesure de trouver un emplacement et le dialogue de progression s'affiche pendant toute la durée de la recherche. Si je vais dans les paramètres de localisation/sécurité du téléphone et que je coche l'option "Utiliser les réseaux sans fil", le meilleur fournisseur est "Réseau" et il fonctionne pour renvoyer une position.

Est-ce que je fais quelque chose de mal lorsque le meilleur fournisseur est le GPS et qu'aucune donnée n'est renvoyée ?

1voto

Fedor Points 29890

Vous pouvez consulter ma stratégie pour choisir le meilleur fournisseur. Quel est le moyen le plus simple et le plus robuste d'obtenir la position actuelle de l'utilisateur sur Android ?

0voto

Quintin Robinson Points 41988

Vous ne faites rien de mal, il existe simplement certaines techniques pour obtenir la localisation par GPS. Le principal problème est que la localisation GPS peut être celle du meilleur fournisseur disponible (en termes de précision), mais qu'elle peut ne pas être en mesure d'obtenir la position actuelle en raison d'une obstruction du réseau ou de la structure. En l'absence d'une logique permettant de déterminer le temps écoulé pendant que le fournisseur a tenté d'obtenir la localisation sans succès ou sans la précision requise, il se peut que vous n'obteniez jamais la localisation via le GPS et que vous deviez utiliser un autre fournisseur ou le système d'information de la Commission européenne, qui n'est pas encore en place. dernier lieu connu comme solution de repli.

0voto

Robby Pond Points 37875

Si le GPS est activé, il renverra toujours le GPS comme étant le meilleur fournisseur puisque vous avez spécifié un critère vide. Il peut s'écouler un certain temps avant qu'une position GPS ne soit obtenue et, si vous êtes dans un bâtiment, il se peut que vous n'obteniez jamais de position. Par conséquent, si l'emplacement du réseau est acceptable, vous devriez vous contenter de l'emplacement du réseau. Ou avoir un délai d'attente pour qu'à un moment donné, vous arrêtiez d'attendre le GPS et que vous passiez au réseau à la place. Si vous utilisez un MapView, vous pouvez utiliser MyLocationOverlay car sa logique interne s'en chargera pour vous.

Votre code semble correct.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X