gpt4 book ai didi

Android 12 新的蓝牙权限

转载 作者:行者123 更新时间:2023-12-04 09:23:35 32 4
gpt4 key购买 nike

蓝牙是我们应用程序的主要依赖项。因此,我们已经尝试实现新的 Android 12 蓝牙权限。我们唯一的资源是 Android developers New Bluetooth permissions in Android 12 .只是说添加权限

"android.permission.BLUETOOTH_CONNECT"

"android.permission.BLUETOOTH_SCAN"


我添加并获得了两者的运行时权限,当然还有位置(通常是 12 之前的版本))。
我的代码库没有其他变化。应该?我不知道。所以,问题是我的应用找不到 BLE 设备。我找不到原因。
你有什么建议或资源吗?

最佳答案

100% 工作解决方案:无需任何第三方插件
list 代码:

   <!--BLUETOOTH PERMISSION-->
<!-- Request legacy Bluetooth permissions on older devices. -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- Needed only if your app looks for Bluetooth devices.
If your app doesn't use Bluetooth scan results to derive physical
location information, you can strongly assert that your app
doesn't derive physical location. -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<!-- Needed only if your app makes the device discoverable to Bluetooth
devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<!-- Needed only if your app communicates with already-paired Bluetooth
devices. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<!--bibo01 : hardware option-->
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>
Kotlin 代码:
 //check android12+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
requestMultiplePermissions.launch(arrayOf(
Manifest.permission.BLUETOOTH_SCAN,
Manifest.permission.BLUETOOTH_CONNECT))
}
else{
val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
requestBluetooth.launch(enableBtIntent)
}
....................................................

private var requestBluetooth = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == RESULT_OK) {
//granted
}else{
//deny
}
}

private val requestMultiplePermissions =
registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
permissions.entries.forEach {
Log.d("test006", "${it.key} = ${it.value}")
}
}
阅读更多:
https://developer.android.com/guide/topics/connectivity/bluetooth/permissions
enter image description here

关于Android 12 新的蓝牙权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67722950/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com