Невозможно вызвать requestLocationUpdates с заданными аргументами. - PullRequest
0 голосов
/ 21 января 2019
private var locationManager: LocationManager? = null

/*onCreate()*/
locationManager = requireActivity()
        .getSystemService(LOCATION_SERVICE) as LocationManager

/*Listener is declared as */
private val locationListener = LocationListener {
     ...
}

 /*Then on button click I want to request location update and hope to see update in my listener*/
 locationManager?.requestLocationUpdates(
        "dsa",
        0.toLong(),
        0.toFloat(),
        locationListener!!
    )

Я хочу проверить requestLocationUpdates, но он говорит, что функции не поддерживают заданные аргументы. Странно, потому что есть requestLocationUpdates с атрибутами String, Long, Float, LocationListener. Что может вызвать это? Я что-то не так делаю?

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Вы должны получить более одной ошибки с вашим кодом. Причина в том, что LocationListener - это interface, а вы воспринимаете это как нечто другое. Чтобы это исправить, измените код LocationListener на следующий фрагмент.

public val locationListener = object: LocationListener{ ... }

Не забудьте переопределить все необходимые методы. Также удалите ненулевое утверждение !!, в этом нет необходимости. Ошибка должна исчезнуть сейчас.

0 голосов
/ 21 января 2019

Согласно документу здесь

IllegalArgumentException сгенерирует, если провайдер нулевой или не существует на этом устройстве. Я думаю, что " dsa " провайдер может не существовать на вашем устройстве. Вы должны использовать LocationManager.NETWORK_PROVIDER, LocationManager.PASSIVE_PROVIDER или LocationManager.GPS_PROVIDER

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