Android 12 BLUETOOTH_CONNECT 拒绝时授予权限

Android 12 BLUETOOTH_CONNECT permission is granted when denied

所以我知道 Android 12 有新的蓝牙权限。在 App Info Permissions 中,它现在看起来像是所谓的 Nearby Devices。 我有这样的逻辑:

        if (ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED) {
            viewModel.connectDevice(macAddressDropdown.selectedItem.toString())
        } else {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
                ActivityCompat.requestPermissions(
                    this,
                    arrayOf(Manifest.permission.BLUETOOTH_CONNECT),
                    1
                )
            }
        }
    }

在初始启动时,这似乎工作正常,它会在 Google 文档中查找附近设备权限提示。 在此之后,我进入应用程序信息中的权限,并拒绝附近的设备权限。 当我调试这个逻辑时,它说 BLUETOOTH_CONNECT 仍然是允许的。

s = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED
a = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_SCAN) == PackageManager.PERMISSION_GRANTED
b = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH) == PackageManager.PERMISSION_GRANTED
c = ContextCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_ADMIN) == PackageManager.PERMISSION_GRANTED
d = ContextCompat.checkSelfPermission(this, Manifest.permission_group.NEARBY_DEVICES) == PackageManager.PERMISSION_GRANTED

当我调试这个时,BLUETOOTH_CONNECT 是唯一显示为 true 的,其余的都是 false。 关于为什么会发生这种情况以及如何解决的任何想法? 可能是一个错误? 谢谢

我遇到了与

相同的问题
minSdkVersion 21
targetSdkVersion 30
compileSdkVersion 31

将目标版本更改为 31 为我修复它

minSdkVersion 21
targetSdkVersion 31
compileSdkVersion 31