Utiliser PhoneGap pour Vérifier si le GPS est activé
Je suis la création d'une application à l'aide de PhoneGap. Tout en utilisant l'API de Géolocalisation de phonegap, j'ai réalisé que l'Api du temps pour deux raisons et de la même erreur est levée:
1. Si le GPS n'est pas activé sur le périphérique de l'utilisateur
2. Si le GPS est activé et n'est pas en mesure d'obtenir l'emplacement de l'utilisateur (peut-être pour plusieurs raisons, défectueux GPS, météo incertaine et ainsi de suite)
Je rencontre un problème dans la différenciation de la cause? Toute réflexion sur la façon de le faire?
Je me demandais si il n'y a de toute façon, je peux vérifier si le GPS est actif sur le périphérique de l'utilisateur à l'aide de Phonegap, de sorte que je peux le faire comme un chèque séparé et directe de l'utilisateur de la fenêtre des paramètres, où généralement GEO paramètres sont placés. Vous ne savez pas comment faire? une coutume phonegap plugin peut être?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vérifier le code d'erreur dans PositionError paramètre de geolocationError à votre appel à l' getCurrentPosition. Je devine qu'il sera PositionError.PERMISSION_DENIED lorsque le gps n'est pas activé, et PositionError.POSITION_UNAVAILABLE ou PositionError.DÉLAI d'attente lorsque le gps est activé, mais il y a d'autres questions.
Noter que c'est dépendant de la plate-forme. Vous serait probablement à écrire un artificiel message d'erreur qui dit "impossible d'obtenir la position actuelle. Soit le signal GPS est faible ou le GPS a été éteint".
Une chose que vous pouvez faire est d'essayer de l'appeler getCurrentPosition avec un très petit délai d'attente, disons 1 ms. Si elle dit le refus d'une autorisation, vous pouvez en conclure que le gps est désactivé et si il arrive à expiration, vous pouvez supposer que le gps est activé. Je n'ai pas le temps de tester cela, vous pourriez probablement modifier cette réponse avec le résultat de vos tests.
Une autre chose que vous pouvez faire est d'essayer d'utiliser le diagnostic phonegap plugin pour android. Vous devrez assurez-vous d'utiliser les plugins pour les autres plates-formes, mais ils sont aussi la plupart du temps il n'.
Pour gérer ce cas le plus gracieusement, vous pouvez utiliser
cordoue.les plugins.diagnostic
pour vérifier si le GPS est activé et (sur Android 6+) vérifier si l'application a le temps d'exécution de l'autorisation, et (si il n'est pas activé), l'utilisationcordova-plugin-demande de localisation de précision
pour basculer automatiquement sur le GPS via un dialogue native sans demander aux utilisateurs de basculer manuellement via la page des paramètres. Cependant, depuis que ce dernier s'appuie sur une mise à jour de Google Play Services de bibliothèque sur l'appareil, il est de bonne pratique de secours pour la commutation manuelle si la commutation automatique échoue.D'abord ajouter les plugins nécessaires à votre projet:
Alors vous devriez faire quelque chose comme ceci:
J'ai eu un problème similaire avec certains appareils. Réussi à le résoudre avec le code ci-dessous:
J'ai essayé DaveAlden la solution ci-dessus, mais il n'a pas de travail, en partie parce que la première fonction qu'il appelle
cordova.plugins.diagnostic.isGpsLocationAvailable()
est Android-seulement par la plugin docs.Comme il le dit, d'abord ajouter les deux plugins:
Puis ajouter les fonctions suivantes:
Espère que cela aide quelqu'un d'autre qui vient le long de cette réponse.
À l'aide d'apache cordova 3 plate-forme android
Dans le GeoBroker.java fichier sur le exectute méthode ajoutez l'action suivante après la locationManager a été instancié.
Puis dans le geolocation.js fichier dans le dossier plugins de votre patrimoine ajouter l'exposer à la nouvelle fonctionnalité
Espère que cela aide
Juste pour les nouveaux utilisateurs redirigés ici il y a un plugin (qui a débuté vers le milieu de 2014) qui est appelé Cordova diagnostic plugin: