【发布时间】:2022-10-07 19:57:58
【问题描述】:
我想创建一个自定义 ActivityResultContract 来请求具有自定义响应的粗略和精细位置。
class LocationPermission : ActivityResultContract<Void?, LocationPermissionResult>() {
override fun createIntent(context: Context, input: Array<String>): Intent {
val requestPermissions = arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION
)
return Intent(ActivityResultContracts.RequestMultiplePermissions.ACTION_REQUEST_PERMISSIONS)
.putExtra(ActivityResultContracts.RequestMultiplePermissions.EXTRA_PERMISSIONS, requestPermissions)
}
...
}
从活动中调用它:
private val reportLocationIntent = registerForActivityResult(LocationPermission()) { result ->
}
... reportLocationIntent.launch()
然而,这样做时 createIntent 永远不会被调用。我究竟做错了什么?
【问题讨论】:
-
我试过你的代码,它可以在我的设备上运行。
标签: android kotlin android-permissions