-1

ACCESS_COARSE_LOCATION et ACCESS_FINE_LOCATON ont tous deux été inclus dans le manifeste. Sont également inclus dans l'activité sont les suivants:Absence de précision GPS entraînant un pointeur nul

import android.location.Location; 
import android.location.LocationManager; 

J'ai un écouteur pour le tiroir de navigation avec la classe suivante

private class DrawerItemClickListener implements ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     if (location != null) 
     { 
      final double longitude = location.getLongitude(); 
      final double latitude = location.getLatitude(); 
     } 

    selectItem(position); 
    } 
} 

De là, le location = null, et serait donc échouer sur location.getLongitude();. Je peux bien sûr éviter cela avec if (location != null), mais je veux les lat et long trouvés.

Pourquoi l'emplacement est-il toujours nul?

+1

Souhaitez-vous cibler l'API 23 ou supérieure? Où demandez-vous [demander l'autorisation à l'exécution] (https://developer.android.com/training/permissions/requesting.html)? – ianhanniballake

Répondre

1

Trouver l'emplacement n'est pas une tâche facile du point de vue matériel. Vous ne pouvez pas dire à l'appareil que je veux connaître mon emplacement alors donnez-moi maintenant! Il a besoin d'observer certaines données des satellites GPS si à l'extérieur avec une visibilité claire, sinon il utilise d'autres options disponibles comme le wifi. Jusqu'à ce que votre appareil arrive avec un emplacement valide, vous devriez attendre. Je vous recommande d'observer l'événement onLocationChanged et de mettre à jour votre listview lorsque cet événement se produit. Aussi, il est bon d'utiliser null condition jusqu'à ce qu'il détecte votre emplacement.

+0

Nous avons eu de fortes tempêtes de neige ces derniers jours. Cela pourrait-il être la cause? – Iorek

+0

Même dans le meilleur des cas, si vous utilisez l'emplacement directement, vous obtiendrez probablement des données nulles. C'est pourquoi vous devriez attendre sur l'événement OnLocationChanged – uguboz

+0

Oui, la solution est http://stackoverflow.com/questions/9873190/my-current-location-always-returns-null-how-can-i-fix-this. Mods sautant le pistolet le fermant – Iorek