And*_*art 8 permissions android bluetooth kotlin android-12
所以我知道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
)
}
}
}
Run Code Online (Sandbox Code Playgroud)
在初次启动时,这似乎工作正常,它会提示附近设备权限,正如 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
Run Code Online (Sandbox Code Playgroud)
当我调试这个时,BLUETOOTH_CONNECT 是唯一显示为 true 的,其余的都是 false。关于为什么会发生这种情况以及如何解决它有什么想法吗?可能是一个错误?谢谢
我遇到了同样的问题
minSdkVersion 21
targetSdkVersion 30
compileSdkVersion 31
Run Code Online (Sandbox Code Playgroud)
将目标版本更改为 31 帮我修复它
minSdkVersion 21
targetSdkVersion 31
compileSdkVersion 31
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10064 次 |
最近记录: |