я не могу получить точное местоположение в моем приложении - PullRequest
0 голосов
/ 12 мая 2018

, когда я выбираю контакт для определения местоположения в моем приложении, он отображает карту со значком местоположения, но в центре карты, а не в расположении барабана, поэтому код MainActivity:

    fun getUserLocation() {
var myLocation = MyLocationListener()
val locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3, 3f, myLocation)

//list sent to request
var userData=UserData(this)
val myPhoneNumber=userData.loadPhoneNumber()
databaseRef!!.child("Users").child(myPhoneNumber).child("request").addValueEventListener(
    object :ValueEventListener{
        override fun onDataChange(p0: DataSnapshot?) {
            if (MainActivity.myLocation==null) return
            //get datatime
            val df = SimpleDateFormat("yyyy/MM/dd HH:MM:ss")
            val date = Date()

           databaseRef!!.child("Users").child(myPhoneNumber).child("location").child("lat").setValue(MainActivity.myLocation!!.latitude)
           databaseRef!!.child("Users").child(myPhoneNumber).child("location").child("log").setValue(MainActivity.myLocation!!.longitude)
           databaseRef!!.child("Users").child(myPhoneNumber).child("location").child("lastOnline").setValue(df.format(date).toString())

        } 

и вот URL моего полного приложения, помогите мне, пожалуйста https://files.fm/u/xnrm88u7

1 Ответ

0 голосов
/ 12 мая 2018

Вам нужно получить координацию от слушателя обратного вызова.

Итак, поместите ваш список отправить запрос внутри слушателя местоположения:

   inner class MyLocationListener: LocationListener {

                     constructor():super(){
                     AccesLocation=true
                     myLocation= Location("me")
                     myLocation?.longitude=0.0
                     myLocation?.latitude=0.0
                     }

                     override fun onLocationChanged(location: Location?) {
                         myLocation=location

                      //list sent to request
    var userData=UserData(this)
    val myPhoneNumber=userData.loadPhoneNumber()
    databaseRef?.child("Users").child(myPhoneNumber).child("request").addValueEventListener(
        object :ValueEventListener{
            override fun onDataChange(p0: DataSnapshot?) {
                if (MainActivity.myLocation==null) return
                //get datatime
                val df = SimpleDateFormat("yyyy/MM/dd HH:MM:ss")
                val date = Date()

               databaseRef?.child("Users").child(myPhoneNumber).child("location").child("lat").setValue(loction?.latitude)
               databaseRef?.child("Users").child(myPhoneNumber).child("location").child("log").setValue(loction?.longitude)
               databaseRef?.child("Users").child(myPhoneNumber).child("location").child("lastOnline").setValue(df.format(date).toString())

            } 

                     }

...
};   

И попробуйте использовать ? insted !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...