BluetoothAdapter.startScan()vs BluetoothAdapter.startLeScan()
我的目标是找到附近的蓝牙设备(LE设备和“经典”),以便将当前可见的附近设备与我的应用使用的某些功能进行关联。 (不是特定的设备/设备,但它们都是!!!)
我知道的:
startLeScan()
只会回调BLE设备 BluetoothDevice
。 我不确定的是:
startScan()
将始终发现可发现的BLE和传统设备。 BluetoothDevice.connectGatt()
添加了新的BLE API,但应该与传统蓝牙(返回GATT服务...)一起工作。 我想知道的是:
startScan()
返回两种类型(Classic和BLE),那么在电池消耗,性能,良好实践和其他方面使用哪种更好? 我的应用程序将定期执行背景扫描,所以我想尽可能减少电池消耗的影响。
您必须使用startDiscovery()开始扫描Classic Bluetooth设备,并使用startLeScan()扫描Bluetooth LE设备。 注意:执行设备发现对于蓝牙适配器来说是一个沉重的过程,并且会消耗大量资源。
编辑:在Android 4.4.2的LG Nexus 4上,startDiscovery()找到蓝牙LE设备。 在带有Android 4.3的Samsung Galaxy S3上,startDiscovery()未找到Bluetooth LE设备。
我有一个具有BLE支持的场外中文平板电脑,但是,当我致电startLeScan时,它总是会返回一个名称为“null”的BLE装备设备。 通过调用startDiscovery解决了该问题。 请记住,如果您的应用目标为23或更高,则需要具有位置权限才能使startDiscovery正常工作。 希望能帮助到你。
链接地址: http://www.djcxy.com/p/18987.html上一篇: BluetoothAdapter.startScan() vs BluetoothAdapter.startLeScan()