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
所以我知道 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