Android LocationManager fournisseur de réseau renvoie la valeur null

Je voulais faire ma coordonnées GPS à l'aide de l'Application Android. J'ai commencé à développer, et je peux obtenir les coordonnées GPS, mais ils ne sont pas exacts. Je voulais utiliser NETWORK_PROVIDER, mais l'Emplacement par ce fournisseur est toujours null. Plus intéressant, isProvicerEnabled renvoie la valeur true.

J'ai utilisé l'exemple de ce fil (meilleure réponse)
entrez description du lien ici

private void _getLocation() {
//Get the location manager
try {
boolean isGPSEnabled = false;
boolean isNetworkEnabled = false;
locationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE);
Location location = null;
double latitude = -1;
double longitude = -1;
//getting GPS status
isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
//getting network status
isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
//no network provider is enabled
} else {
if (isNetworkEnabled) {
showToast("network");
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
1000,
0, this);
Log.d("Network", "Network Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
//if GPS Enabled get lat/long using GPS Services
else if (isGPSEnabled) {
showToast("gps");
if (location == null) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
1000,
0, this);
Log.d("GPS", "GPS Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
}
showToast("" + latitude + longitude);
} catch (Exception e) {
e.printStackTrace();
}

J'ai toutes les autorisations dans le manifeste

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

Je sais que le code est sale, mais pour l'instant c'est uniquement pour les tests. Dois-je raté quelque chose? J'ai trouvé des exemples similaires dans de nombreux endroits, et il semble assez simple, donc je suis un peu confus.
Mon téléphone fonctionne bien, le GPS et le réseau fonctionne très bien. Par exemple application Google Maps j'ai fonctionne bien. Des suggestions?

OriginalL'auteur Kamil Kłys | 2014-07-26