【问题标题】:拒绝时授予 Android 12 BLUETOOTH_CONNECT 权限
【发布时间】:2021-12-21 10:19:17
【问题描述】:

所以我知道 Android 12 具有新的蓝牙权限。在 App Info Permissions 中,它现在看起来像是被称为“附近的设备”。 我有这个逻辑:

        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 文档中显示。 之后,我进入 App Info 中的 Permissions,并拒绝 Nearby Devices 权限。 当我调试这个逻辑时,它说 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。 关于为什么会发生这种情况以及如何解决它的任何想法? 潜在的错误? 谢谢

【问题讨论】:

  • 感谢分享!我看到了完全相同的问题。我今天遇到了同样的情况。你找到为什么它返回为 Granted stackoverflow.com/questions/69922636/…
  • @luckysing_noobster 很高兴知道其他人正在经历它。我还没有找到修复它的方法,我假设它是一个错误或谷歌尚未正确地将附近的设备实现为权限,因为它作为权限组存在。我可以确认它何时返回 true 但在 App Info 的权限中被拒绝,蓝牙连接不起作用并返回错误。所以我真的不知道发生了什么
  • 只是为了确认,这是真的,我也看到了这个问题。
  • 我将目标更新为 31,它似乎有效
  • 我不想在完成我正在做的事情之前回复,所以我可以 100% 确定,但至少蓝牙权限有效。

标签: android kotlin permissions bluetooth android-12


【解决方案1】:

我遇到了同样的问题

minSdkVersion 21
targetSdkVersion 30
compileSdkVersion 31

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

minSdkVersion 21
targetSdkVersion 31
compileSdkVersion 31

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-30
    • 2016-03-16
    • 2011-10-17
    • 2011-08-28
    • 2019-03-10
    • 2017-05-14
    • 2012-01-19
    • 2014-09-27
    相关资源
    最近更新 更多