【发布时间】:2015-10-01 11:41:00
【问题描述】:
我的应用应连接到蓝牙 LE 设备。通常您使用mBluetoothAdapter.startLeScan(mLeScanCallback); 执行设备扫描。回调为您提供有关可用设备的信息。
如果你想连接到专用设备,你可以这样做
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
然后
mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
在我看来,连接到 BLE 设备所需的唯一事情就是知道 BLE 地址,然后通过上述两个步骤连接到它。因此,如果我已经知道 BLE 地址(例如,它写在 BLE 设备的标签上),我就不需要执行 BLE 扫描。
但是我遇到的是,如果我有一个以前从未通过 BLE 扫描找到的 BLE 设备,则无法使用其 BLE 地址直接连接到它。我必须用我的安卓手机至少扫描一次才能找到它。之后我再也不需要扫描了,我只需使用它的 BLE 地址就可以连接到 BLE 设备。
应该是这样还是我监督了什么?
非常感谢, 斯蒂芬
【问题讨论】:
-
连接前是否需要pairing and/or bonding?
-
据我了解BLE,这是没有必要的。此外,如果我确实执行了扫描,我不会对配对或绑定做任何事情,并且它可以工作。问题是直接连接到设备而无需进行 BLE 扫描。