我知道Android 12有新的蓝牙权限。在应用程序信息权限中,它现在被称为“附近设备”。 我有这个逻辑:
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)。您有什么想法,为什么会这样,怎么解决呢?可能是个bug吗?谢谢。