Geolocalisation ne fonctionne pas
NeoANDROID -
Bonjour
Je m'amuse depuis quelques temps à programmer des applications sur ANDROID Studio (2021.2.1 Patch 1) avec java.
Je me lance dans la géolocalisation et j'ai un problème. Je tourne un peu en rond.
Voici le contexte (je fais les essais d'apllication sur mon téléphone) :
- J'ai d'abord suivi les consignes des tutos, j'ai donné des autorisations dans AndroidManifest.xml :
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- Ensuite j'ai commencé à programmer en java, j'observe les résultats sur wingets TextView, j'ai instancié un LocationManager :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Liaision au widget
TextView Zone_texte_1 = (TextView) findViewById(R.id.Identifiant_TextView_1);
TextView Zone_texte_2 = (TextView) findViewById(R.id.Identifiant_TextView_2);
TextView Zone_texte_3 = (TextView) findViewById(R.id.Identifiant_TextView_3);
TextView Zone_texte_4 = (TextView) findViewById(R.id.Identifiant_TextView_4);
TextView Zone_texte_5 = (TextView) findViewById(R.id.Identifiant_TextView_5);
TextView Zone_texte_6 = (TextView) findViewById(R.id.Identifiant_TextView_6);
// Le manager donne acces au système GPS de l'appareil
LocationManager Mon_manager_de_location = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
- J'ai compris qu'il y a 3 methodes de localisation :
Soit on interroge directement le système GPS avec LocationManager.GPS_PROVIDER
Soit on interroge directement le réseau avec LocationManager.NETWORK_PROVIDER
Soit on laisse l'application choisir le meilleur "fournisseur"
J'ai échoué dans les trois cas, je vous présente ma progression dans le programme.
- J'ai vérifié la disponibilité du GPS et du réseau : Dans les deux cas c'était OK.
// Est ce que le GPS est disponible ?
if (!Mon_manager_de_location.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Zone_texte_1 .setText("GPS non disponible ");
} else {
Zone_texte_1 .setText(" OUI. GPS trouvé !");
}
// Est ce que le Network est disponible ?
if (!Mon_manager_de_location.isProviderEnabled(LocationManager.NETWORK_PROVIDER) )
{
Zone_texte_2 .setText("Network non disponible ");
} else {
Zone_texte_2 .setText(" OUI. Network trouvé !");
}
- J'ai examiné la liste des fournisseurs, j'obtient : [Passive, gps, network]
J'ai examiné les fournisseurs disponibles, je n'obtient rien : [ ] (ce qui est mauvais signe me semble-t-il)
// Donne la liste des fournisseurs : passive, GPS ou Network
List<String> Liste_fournisseurs = Mon_manager_de_location.getAllProviders();
Zone_texte_3 .setText(" Liste des fournisseurs : "+ Liste_fournisseurs );
// Donne la liste des fournisseurs disponible : passive, GPS ou Network
List<String> Liste_fournisseurs_dispo = Mon_manager_de_location.getProviders(true);
Zone_texte_4 .setText(" Fournisseurs disponibles : "+ Liste_fournisseurs_dispo);
- D'après ce que j'ai compris, le choix du fournisseur se fait selon des critères à paramétrer.
C'est ce que j'ai fait mais avec peu d'espoir car le contenu de fourniseur est "null", comme vu ci dessus.
// Il faut établir des critères de fonctionnement du GPS
Criteria Mes_criteres = new Criteria();
//Mes_criteres.setAccuracy(Criteria.ACCURACY_FINE);
Mes_criteres.setAccuracy(Criteria.ACCURACY_COARSE);
String fournisseur = Mon_manager_de_location.getBestProvider(Mes_criteres, true);
Zone_texte_5.setText(" le fournisseur est : " + fournisseur);
- Enfin j'ai essayé 5 formes d'acquisitions de localisations, aucune ne fonctionne car mon environnement de programmation les rejète.
Les erreurs disent : autorisations requises ou cannot resolve methode.
Location Capture_localisation_0 = Mon_manager_de_location.getLastKnownLocation(fournisseur);
Location Capture_localisation_1 = Mon_manager_de_location.getCurrentLocation(LocationManager.NETWORK_PROVIDER);
Location Capture_localisation_2 = Mon_manager_de_location.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Location Capture_localisation_3 = Mon_manager_de_location.getCurrentLocation(LocationManager.GPS_PROVIDER);
Location Capture_localisation_4 = Mon_manager_de_location.getLastKnownLocation(LocationManager.GPS_PROVIDER);
J'ai cherché dans tous les sens. Si quelqu'un pouvait me remettre sur les rails. Merci
Windows / Firefox 102.0
- Geolocalisation ne fonctionne pas
- Géolocalisation - Guide
- Geolocalisation whatsapp - Guide
- Géolocalisation gps - Guide
- Cette option méconnue de Google Maps améliore la localisation quand on perd le signal GPS - Guide
- Géolocalisation de ma position - Guide