我正在关注有关如何实现权限的Android 文档示例,它建议使用androidx'sRequestPermission和requestPermissionLauncherAPI 来:
允许系统管理与权限请求关联的请求代码
我基本上复制了示例代码:
private fun checkForPermissions() {
// setup permission callback
val requestPermissionLauncher =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted: Boolean ->
if (isGranted) {
// success
Log.d("RPMT", "success")
} else {
Log.d("RPMT", "failure")
// failure
}
}
// check permission
if (ContextCompat.checkSelfPermission(
this@MainActivity,
Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED
) {
Log.d("RPMT", "carry on with flow")
} else {
requestPermissionLauncher.launch(
Manifest.permission.CAMERA
)
}
}
Run Code Online (Sandbox Code Playgroud)
但是在运行这个时,我得到一个
java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode …Run Code Online (Sandbox Code Playgroud) “函数”是 JavaScript 类型吗?
例如:
console.log(typeof alert) // returns function
Run Code Online (Sandbox Code Playgroud)
这表明“功能”确实是一种类型
但是,在这个ECMAscript 文档中,它说:
ECMAScript 语言类型有 Undefined、Null、Boolean、String、Symbol、Number、BigInt 和 Object”。
有人可以向我解释一下吗?
提前致谢 :)