问题描述
要在JobScheduler中获取位置,我需要获取活动上下文以在ActivityCompat.requestPermissions
中调用onStartJob
。
ActivityCompat.requestPermissions({},permissions,REQUEST_CODE);
但是我无法将活动上下文传递给JobScheduler。
class GetLocationJob : JobService() {
override fun onStopJob(params: JobParameters?): Boolean {
...
}
override fun onStartJob(params: JobParameters?): Boolean {
// Check Permission
if (ActivityCompat.checkSelfPermission(
this,Manifest.permission.ACCESS_FINE_LOCATION
) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
this,Manifest.permission.ACCESS_COARSE_LOCATION
) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
this,Manifest.permission.ACCESS_BACKGROUND_LOCATION
) != PackageManager.PERMISSION_GRANTED
) {
val permissions = arrayOf(
Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_BACKGROUND_LOCATION
)
// can't pass activity context
ActivityCompat.requestPermissions(this,REQUEST_CODE);
}
// 2. create client
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
// 3. get location
fusedLocationClient.lastLocation
.addOnSuccessListener { location: Location? ->
println(location)
if (location != null) {
println(location.latitude)
}
if (location != null) {
println(location.longitude)
}
}
...
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)