有没有办法引用
权限.权限名称
在此代码中:
fun Activity.isPermissionGranted(vararg permission : AppPermission) = (PermissionChecker.checkSelfPermission(this, permission.permissionName) == PackageManager.PERMISSION_GRANTED)
就像我收到"未解析的引用:权限名称"错误一样。
AppPermission类签名如下所示:
sealed class AppPermission(val permissionName: String,
val requestCode: Int,
val deniedMessageId: Int,
val explanationMessageId: Int) {...}
老实说,我什至不确定在这里使用 varargs 是否是一个好主意,所以如果它完全是疯狂的,请纠正我。
基本上,我正在尝试为 Android> 5.0 实现授予权限逻辑,但我不确定我们最终需要多少权限,所以这就是我想在这里使用 varargs 的原因。
vararg
基本上只是用于创建数组的语法糖。因此,您需要将参数permission
视为Array<AppPermission>
,这意味着您可能希望这样做:
fun Activity.isPermissionGranted(vararg permissions : AppPermission) = permissions.all { permission -> (PermissionChecker.checkSelfPermission(this, permission.permissionName) == PackageManager.PERMISSION_GRANTED) }
在这里,all
是标准库中的一个函数,它为数组中的每个值计算一个Boolean
,并在所有这些Boolean
都true
时返回true
。