如何获取(扫描)在Android中未配对的蓝牙设备列表?意味着必须扫描附近的设备.请在这方面提供帮助.我知道如何找到(扫描)配对的设备和做所有的事情(插座,连接,服务器,通信等)与削减设备,但无法找到(扫描)附近的蓝牙设备编程.我希望你们的人会理解我的问题,并提供相应的帮助.我想扫描未配对的蓝牙设备列表。
t3irkdon1#
我得到了解决方案,这个问题是与设备以及仍然(问题很少)但代码是工作正常,现在为我的设备以及.有可能是在扫描一些设备延迟.即3设备扫描没有时间和其他一个或两个设备需要时间来扫描.一些时间广播接收机错过调用,这就是为什么时间得到一个结束.以下是将返回蓝牙设备的广播接收器。
class FoundDeviceReceiver( private val onDeviceFound: (BluetoothDevice) -> Unit ): BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { when(intent?.action) { BluetoothDevice.ACTION_FOUND -> { val device = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { intent.getParcelableExtra( BluetoothDevice.EXTRA_DEVICE, BluetoothDevice::class.java ) } else { intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE) } device?.let(onDeviceFound) } } }
下面是注册广播接收器并开始发现的方法。我们还必须根据我们的要求取消注册广播接收器。
override fun startDiscovery() { if (!hasPermission(Manifest.permission.BLUETOOTH_SCAN)) { return } context.registerReceiver( foundDeviceReceiver, IntentFilter(BluetoothDevice.ACTION_FOUND) ) bluetoothAdapter?.startDiscovery() }
bluetoothAdapter?.startDiscovery()是内置方法,它将调用注册的广播接收器,我们将成功接收蓝牙设备。如果有人仍然有问题,那么他可以发表评论,我将很乐意回应。
bluetoothAdapter?.startDiscovery()
1条答案
按热度按时间t3irkdon1#
我得到了解决方案,这个问题是与设备以及仍然(问题很少)但代码是工作正常,现在为我的设备以及.有可能是在扫描一些设备延迟.即3设备扫描没有时间和其他一个或两个设备需要时间来扫描.一些时间广播接收机错过调用,这就是为什么时间得到一个结束.
以下是将返回蓝牙设备的广播接收器。
下面是注册广播接收器并开始发现的方法。我们还必须根据我们的要求取消注册广播接收器。
bluetoothAdapter?.startDiscovery()
是内置方法,它将调用注册的广播接收器,我们将成功接收蓝牙设备。如果有人仍然有问题,那么他可以发表评论,我将很乐意回应。