Localisation Actuelle
Résumé
- Nom interne :
GetCurrentLocation - Catégorie : Localisation
- Objectif : Récupérer la position GPS actuelle de l'appareil (latitude, longitude, précision) avec gestion configurable du timeout.
- Type de tâche : Normale
Compatibilité
-
Version minimale AndroMate :
1.1.0 -
Version maximale AndroMate :
1.1.0 -
Android minimum :
Android 13 (API 33) -
Android maximum testé :
Android 16 (API 36) -
Constructeurs supportés :
- ✅ Tous les constructeurs (testé sur Samsung One UI 6.x / 7.x / 8.x et Google Pixel Android Stock)
-
Permissions requises :
ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION- Les services de localisation doivent être activés sur l'appareil
Description détaillée
La tâche GetCurrentLocation interroge le système GPS du téléphone afin d'obtenir la position géographique actuelle.
Elle est utilisée pour :
- Collecter la géolocalisation de l'appareil (latitude / longitude)
- Mesurer la précision GPS
- Attacher les données de localisation à des rapports de télémétrie ou de supervision
- Déclencher des actions selon la position géographique
- Suivre le déplacement ou la présence dans une zone définie
La tâche gère :
- la vérification que les services de localisation sont activés,
- la vérification des permissions de localisation,
- la demande de position GPS via
FusedLocationProviderClient, - la gestion d'un délai d'attente configurable (
location_timeout_ms), - la récupération des valeurs latitude, longitude et précision (arrondies à 3 décimales).
Paramètres d'entrée
| Paramètre | Type | Obligatoire | Valeurs possibles | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|---|
location_timeout_ms |
Integer | Non | Temps en millisecondes | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | 10000 |
Paramètres de sortie
| Champ | Type | Condition de déclenchement | Compatibilité Android | Compatibilité AndroMate | Défaut |
|---|---|---|---|---|---|
location_lat_output |
Double | Lorsque la localisation est réussie | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
location_long_output |
Double | Lorsque la localisation est réussie | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
location_accuracy_output |
Float | Lorsque la localisation est réussie | Android 13 (API 33) → Android 16 (API 36) | 1.1.0 → 1.1.0 | <ANDROMATE_NULL_VALUE> |
Exceptions
| Code | Description |
|---|---|
GPS-ERROR-001 |
Échec de l'obtention de la position GPS dans le délai spécifié (location_timeout_ms). |
GPS-ERROR-002 |
Impossible d'obtenir la position — le fournisseur GPS a retourné une position nulle. |
GPS-ERROR-003 |
Les services de localisation sont désactivés sur l'appareil. Activez le GPS dans les paramètres. |
GPS-ERROR-004 |
L'application ne dispose pas de la permission ACCESS_FINE_LOCATION ou ACCESS_COARSE_LOCATION. |
Diagramme d'exécution
flowchart TD
Start([▶ GetCurrentLocation]) --> CheckGps{Services de\nlocalisation activés ?}
CheckGps -->|Non| E3[❌ GPS-ERROR-003\nLocalisation désactivée]
CheckGps -->|Oui| CheckPerm{ACCESS_FINE_LOCATION\naccordée ?}
CheckPerm -->|Non| E4[❌ GPS-ERROR-004\nPas de permission]
CheckPerm -->|Oui| GetLoc[📍 getCurrentLocation\nPriorité : HAUTE_PRÉCISION\nTimeout : location_timeout_ms]
GetLoc -->|Timeout| E1[❌ GPS-ERROR-001\nTimeout GPS]
GetLoc -->|Succès| CheckNull{Location\n== null ?}
CheckNull -->|Oui| E2[❌ GPS-ERROR-002\nPosition nulle]
CheckNull -->|Non| ExtractData[📊 Extraire\nlocation_lat_output\nlocation_long_output\nlocation_accuracy_output]
ExtractData --> Success([✅ LocationTaskResult])
E1 --> Error([❌ Exception])
E2 --> Error
E3 --> Error
E4 --> Error
style Start fill:#e3f2fd
style Success fill:#c8e6c9
style Error fill:#ffcdd2
style ExtractData fill:#fff9c4
style GetLoc fill:#f3e5f5
style E1 fill:#ffcdd2
style E2 fill:#ffcdd2
style E3 fill:#ffcdd2
style E4 fill:#ffcdd2
Comment ça fonctionne :
- Vérifier les services de localisation : Lance
GPS-ERROR-003si le GPS est désactivé - Vérification des permissions : Lance
GPS-ERROR-004siACCESS_FINE_LOCATIONn'est pas accordée - Demande GPS : Obtient la position actuelle via
FusedLocationProviderClient - Attente avec timeout : Lance
GPS-ERROR-001si le GPS ne répond pas danslocation_timeout_ms - Vérification null : Lance
GPS-ERROR-002si le fournisseur GPS retourne une position nulle - Extraction des données : Récupère latitude →
location_lat_output, longitude →location_long_output, précision →location_accuracy_output - Résultat : Retourne
LocationTaskResulten cas de succès
Détails des paramètres d'entrée
1. Paramètre d'entrée : location_timeout_ms
Temps maximal (en millisecondes) d'attente pour un fix GPS valide avant de lancer GPS-ERROR-001.
Exemple
- Défaut :
10000ms - Valeurs recommandées : 5000–30000 ms
Détails des paramètres de sortie
2. Variable résultat : location_lat_output
Stocke la valeur de latitude retournée par le fournisseur GPS.
Exemple
3. Variable résultat : location_long_output
Stocke la valeur de longitude retournée par le fournisseur GPS.
Exemple
4. Variable résultat : location_accuracy_output
Stocke la précision du fix GPS en mètres (arrondie à 3 décimales).
Exemple
- Plus la valeur est faible, meilleure est la précision.