Obtenir la localisation android Kotlin
J'ai récemment ajouté obtenir la localisation de la fonction. Lorsque j'essaie de montrer la longitude et la latitude, elle renvoie zéro.
Ce mon: LocationListener classe:
inner class MylocationListener: LocationListener {
constructor():super(){
mylocation= Location("me")
mylocation!!.longitude
mylocation!!.latitude
}
override fun onLocationChanged(location: Location?) {
mylocation=location
}
override fun onStatusChanged(p0: String?, p1: Int, p2: Bundle?) {}
override fun onProviderEnabled(p0: String?) {}
override fun onProviderDisabled(p0: String?) {}
}
Et mon GetUserLocation fonction:
fun GetUserLocation(){
var mylocation= MylocationListener()
var locationManager=getSystemService(Context.LOCATION_SERVICE) as LocationManager
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0.1f,mylocation)
}
Et cela ma fonction pour renvoyer mon longitude et de la latitude:
fun getLoction (view: View){
prgDialog!!.show();
GetUserLocation()
button.setTextColor(getResources().getColor(R.color.green));
textView.text = mylocation!!.latitude.toFloat().toString()
Toast.makeText(this, mylocation!!.latitude.toFloat().toString(), Toast.LENGTH_LONG).show()
Toast.makeText(this, mylocation!!.longitude.toFloat().toString(), Toast.LENGTH_LONG).show()
prgDialog!!.hide()
}
- Elle renvoie zéro ou la valeur null?
- Votre demande a obtenu les autorisations requises pour l'emplacement? Avez-vous tester sur l'appareil ou l'émulateur? Est gps actif sur l'appareil?
Vous devez vous connecter pour publier un commentaire.
Quand
GetUserLocation
retourne,locationManager
est hors de portée, et sans doute est détruit, la préventiononLocationChanged
d'être appelé et de fournir des mises à jour.Aussi, vous avez défini
mylocation
à l'intérieur deGetUserLocation
donc il est hors de portée et tue encore une chance ou votre obtenir une mise à jour.Vous n'avez pas indiqué où et comment l'extérieur
mylocation
est déclarée (en dehors deGetUserLocation
), mais comment jamais, il est déclaré, il est occultée par celle à l'intérieur deGetUserLocation
. Si vous n'obtenez pas beaucoup.Voici un exemple de comment vous pouvez le faire. (La variable
thetext
est définie dans la mise en page xml et accessible avec Kotlin extensions.)Je sais il est tard, mais maintenant, Google a rendu plus simple à utiliser. Le développeur d'un site, il est dit que vous devez créer un Client:
Puis onCreate obtenir le fournisseur de:
Et enfin, pour obtenir votre dernier emplacement juste à l'appel:
*Testé avec cette mise en œuvre pour l'emplacement (le programme d'Installation de votre application gradle fichier)
Pour plus d'info, suivez ce lien:
Obtenir le dernier emplacement
Je voudrais aider quelqu'un qui essaie d'obtenir de l'emplacement à partir de zéro.
Voici la référence: Kotlin Obtenir de l'Emplacement Actuel
Code va d'abord vérifier si l'emplacement est activé ou désactivé dans l'appareil, puis va récupérer la latitude et de la longitude et de la mettre à jour en permanence.
Dans la construction.gradle(Module:app) du dossier de ce
activity_main.xml code
MainActivity.kt