Slt a tous !!!
J'essaye de créer une application sous android qui permet de se géolocaliser par le wifi ou le GPS.
Pour l'instant je gère uniquement la position par GPS (mais la n'est pas le problème).
Lorsque je lance mon application sur mon téléphone (Nexus 5) la map google ne s'affiche pas. J'ai le message suivant qui apparait "the provider network is now disabled". (par contre j'ai bien le cadre de la map avec le quadrillage)
MainActivity.java
activity_main.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113 package com.example.localisation; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.location.LocationProvider; import android.os.Bundle; import android.view.KeyEvent; import android.view.Menu; import android.widget.Toast; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; public class MainActivity extends MapActivity implements LocationListener{ private MapView mapView; private MapController mc; private LocationManager lm; private double latitude; private double longitude; private double altitude; private float accuracy; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mapView = (MapView) this.findViewById(R.id.mapView); mapView.setBuiltInZoomControls(true); mc = mapView.getController(); mc.setZoom(17); } @Override protected void onResume() { super.onResume(); lm = (LocationManager) this.getSystemService(LOCATION_SERVICE); if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this); lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, this); } @Override protected void onPause() { super.onPause(); lm.removeUpdates(this); } @Override protected boolean isRouteDisplayed() { return false; } @Override public void onLocationChanged(Location location) { latitude = location.getLatitude(); longitude = location.getLongitude(); altitude = location.getAltitude(); accuracy = location.getAccuracy(); String msg = String.format( getResources().getString(R.string.new_location), latitude, longitude, altitude, accuracy); Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); GeoPoint p = new GeoPoint((int) (latitude * 1E6), (int) (longitude * 1E6)); mc.animateTo(p); mc.setCenter(p); } @Override public void onProviderDisabled(String provider) { String msg = String.format( getResources().getString(R.string.provider_disabled), provider); Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } @Override public void onProviderEnabled(String provider) { String msg = String.format( getResources().getString(R.string.provider_enabled), provider); Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } @Override public void onStatusChanged(String provider, int status, Bundle extras) { String newStatus = ""; switch (status) { case LocationProvider.OUT_OF_SERVICE: newStatus = "OUT_OF_SERVICE"; break; case LocationProvider.TEMPORARILY_UNAVAILABLE: newStatus = "TEMPORARILY_UNAVAILABLE"; break; case LocationProvider.AVAILABLE: newStatus = "AVAILABLE"; break; } String msg = String.format( getResources().getString(R.string.provider_disabled), provider, newStatus); Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } }
LocalisationManifest.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <com.google.android.maps.MapView android:id="@+id/mapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="AIzaSyA5yiULAFnY2CHN8RlW5Amk1SgKeoel7Uo" android:clickable="true" /> </RelativeLayout>
strings.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.localisation" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <application android:allowBackup="true" android:icon="@drawable/maps" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="com.google.android.maps" /> <activity android:name="com.example.localisation.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyA5yiULAFnY2CHN8RlW5Amk1SgKeoel7Uo" /> </application> </manifest>
J'ai bien une ApiKey fourni par google. Je ne comprend pas d'ou viens mon erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Localisation</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string> <string name="provider_enabled">The provider %s is now enabled</string> <string name="provider_disabled">The provider %s is now disabled</string> <string name="provider_new_status">The provider %1$s has now a new status %2$s</string> <string name="new_location">New Location : Latitude = %1$s, Longitude = %2$s, Altitude = %3$s avec une précision de %4$s mètres </string> </resources>
Je programme pour une appli sous Android 4.4.2.
Un peu d'aide de votre part sera la bienvenue, car je ne vois pas comment faire.
Je previens que je débute en programmation android.
Merci d'avance
Partager