web-dev-qa-db-fra.com

Erreur lors de l'ajout de clôtures géographiques dans Android (code d'état 1000)

Je reçois une erreur dans la fonction de rappel onAddGeofencesResult(int statusCode, String[] geofenceRequestIds) avec statusCode = 1000.

J'ai mon GPS activé et mon WiFi. J'ai également les services Google Play et je peux suivre ma position et demander des mises à jour. Pourquoi ne puis-je pas ajouter de geofences? Je ne suis pas en mesure d'ajouter des geofences même à partir de l'exemple d'application de documentation. Je reçois le message Toast suivant:

"Ajouter des clôtures géographiques: échec, code d'erreur 1000 GeofenceRequestIds = [1,2,1,2]"

De la documentation (statusCode 1000):

public static final int GEOFENCE_NOT_AVAILABLE

Le service Geofence n'est pas disponible actuellement. En règle générale, cela est dû au fait que l'utilisateur a désactivé l'accès à l'emplacement dans Paramètres> Accès à l'emplacement.

Valeur constante: 1000 (0x000003e8)

29
Speed Demon

Vous obtenez GEOFENCE_NOT_AVAILABLE (code "1000") lorsque l'utilisateur n'est pas d'accord avec "Utiliser les services de localisation de Google" dans Paramètres-> Localisation-> Mode: enter image description here

Réparer:

  • allez dans Paramètres-> Emplacement-> Mode
    enter image description here
  • réglez "Appareil uniquement (utilisez le GPS pour déterminer votre position)"
  • définissez toute autre option pour obtenir la fenêtre contextuelle (par exemple, "Haute précision (utilisez le GPS, le Wi-Fi et les réseaux mobiles pour déterminer l'emplacement")
  • la boîte de dialogue "" Utiliser les services de localisation de Google "s'affiche
  • choisissez "D'accord"
33
Marian Paździoch

J'obtenais le statusCode 1000 lorsque j'essayais d'exécuter cette application sur l'émulateur. La chose qui a corrigé cela était d'aller dans Paramètres-> emplacements et accès-> Cochez l'option activer le wifi et le gps sur l'émulateur et il le réparera

5
Android2390

Est un peu plus tard, mais je viens d'avoir ce problème. Ma conjecture est:

vous utilisez n'importe quel type de faux GPS sur vos tests (Lockito, émulateur, etc.)?

Je prends quelques heures jusqu'à ce que je découvre que les faux emplacements semblent désactiver le support Geofence! Vous ne pouvez pas enregistrer ou déclencher une clôture géographique si vous n'êtes pas vraiment dans l'emplacement.

Si vous désactivez le faux GPS, le support Geofence redevient activé.

5
Renascienza

Publier cette réponse car les paramètres de Android ont beaucoup changé. J'ai eu cette erreur deux fois lorsque j'utilisais un émulateur Nexus 5X exécutant l'API 28. J'ai réussi à le résoudre les deux fois en procédant comme suit :

  1. Désactivez votre application que vous développez (ne la laissez pas en arrière-plan)
  2. Accédez à Paramètres -> Sécurité et localisation -> Localisation -> Avancé -> Précision de localisation Google. Désactivez "Améliorer la précision de la position" .

enter image description here

  1. Activez 'Améliorer la précision de la position'

Rallumez votre application et l'ajout de clôtures géographiques a fonctionné pour moi après avoir pris ces mesures.

EDIT: J'ai rencontré à nouveau ce problème quelques mois plus tard, parfois l'émulateur est têtu et n'active pas correctement la précision de localisation pour permettre à l'API Geofence de Google de reconnaître qu'il est activé. J'avais activé et désactivé "Améliorer la précision de la localisation" au moins 10 fois avant que la précision de la localisation ne fonctionne.

3
MinistryOfChaps

Vous avez en fait donné la réponse dans votre question: le service Geofence n'est pas disponible actuellement. En règle générale, cela est dû au fait que l'utilisateur a désactivé l'accès à l'emplacement dans Paramètres> Accès à l'emplacement.

J'ai eu ce même problème, et juste aller dans les paramètres -> emplacement et m'assurer que je sélectionne le mode pour une grande précision a résolu ce problème.

Le mode PS uniquement n'est pas assez bon, il doit être en mode haute précision.

J'espère que cela t'aides.

2
FiL0

J'ai fait une stupide erreur:

Une erreur s'est produite car le périphérique n'a pas l'autorisation pour le GPS (service de localisation).

Plus de détails sur l'API Geofencing ici .

Captures d'écran pour référence:

enter image description hereenter image description here

J'espère que cela vous clarifiera.

1
Hiren Patel

Tout d'abord, votre téléphone doit être compatible: A compatible Android device that runs Android 2.2 or higher and includes Google Play Store.

Juste pour être sûr, vous devez avoir le service Google Play installé correctement .

Parfois, le simple redémarrage de votre téléphone peut résoudre ce problème.

J'espère que cette aide.

1
André Rodrigues