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属性。是什么原因造成的?我在做错什么吗?
答案 0 :(得分:0)
根据文档here
如果provider为null或此设备上不存在,则会抛出IllegalArgumentException
。
我认为您的设备中可能不存在“ dsa ”提供程序。您应该使用LocationManager.NETWORK_PROVIDER
,LocationManager.PASSIVE_PROVIDER
或LocationManager.GPS_PROVIDER
答案 1 :(得分:0)
您的代码应获得多个错误。原因是LocationListener
是interface
,您将其视为其他东西。要解决此问题,请将LocationListener代码更改为以下代码段。
public val locationListener = object: LocationListener{
...
}
请记住要重写所有必要的方法。还要删除Non null断言!!
,所以不需要这样做。错误现在应该消失了。