Android 4.4:低功耗蓝牙;无需扫描即可连接BLE设备

我的应用程序将连接到蓝牙LE设备.通常使用mBluetoothAdapter.startLeScan(mLeScanCallback)执行设备扫描.回调为您提供有关可用设备的信息.

如果你想连接到专用设备,你会做类似的事情

BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);

然后

mBluetoothGatt = device.connectGatt(this, false, mGattCallback);

对我而言,连接到BLE设备所需的唯一事情就是知道BLE地址,然后通过上述两个步骤连接到它.因此,如果我已经知道BLE地址(例如,它写在BLE设备的标签上),我不需要执行BLE扫描.

但我遇到的是,如果我有一个以前从未通过BLE扫描找到的BLE设备,则无法使用其BLE地址直接连接到它.我必须通过我的Android手机扫描至少一次才能找到它.之后我再也不需要扫描了,只需使用其BLE地址即可连接到BLE设备.

它应该是这样的还是我监督的东西?

非常感谢,
斯特凡

最佳答案
设备地址仅是蓝牙设备的唯一标识符,它不包含连接信息.扫描对于从蓝牙设备检索广播信号内的信息是必要的,以便可以进行连接.扫描完成后,信息将保存在设备的某个位置并绑定到设备地址.

我想如果你试图检索蓝牙地址的值,它将返回null,直到它被扫描一次.

转载注明原文:Android 4.4:低功耗蓝牙;无需扫描即可连接BLE设备 - 代码日志