gpt4 book ai didi

android - permissionsdispatcher 和 multiple @NeedsPermission's with kotlin

转载 作者:行者123 更新时间:2023-11-29 15:05:03 26 4
gpt4 key购买 nike

对于一个权限,我可以在 java 和 kotlin 中使用 permissionsdispatcher - 但是当涉及到多个权限时,如下所示:

@NeedsPermission({Manifest.permission.BLUETOOTH_ADMIN,Manifest.permission.BLUETOOTH})

我在 kotlin 上遇到问题 - 它不接受超过一个参数 - 在 java 上工作正常

最佳答案

在 Java 中,{} 表示创建一个数组,而在 Kotlin 中的这种情况下,{} 意外地创建了一个 lambda expression并且无法确定您的 Intent ,因为 lambda 中的代码无效。

所以你说的是 @NeedsPermission(someFunctionReferenceThatIsInvalid) 而不是传入一组权限作为 @NeedsPermission(array)

在注释中,数组被视为 vararg,因此您可以只列出元素:

@NeedsPermission(Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.BLUETOOTH)

如果它被视为一个数组,您将使用 arrayOf 函数:

@NeedsPermission(arrayOf(Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.BLUETOOTH))

创建数组然后使用 * spread operator 的示例基本上是在做然后撤消数组,这是没有必要的。

关于android - permissionsdispatcher 和 multiple @NeedsPermission's with kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38233350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com