我在BLE工作,我的问题就出现了。
当我使用方法bluetoothAdapter.startLeScan(回调)时,我的bluetoothadapter有时找不到设备。
当适配器无法找到设备时,我只需重新启动bluetoothadapter(意思是:关闭bluetoothadapter然后再打开)。
然后回调将返回设备而不是null。
我对BLE开发有很多了解,但似乎没有人发现这个问题。
这是我的回调:
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi,byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
synchronized (m_LeDevices) {
if (m_device_mac != null && m_device_mac.equals(device.getAddress().replace(":", ""))) {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
forwardToMain();
}
}, DELAY_FORWARD_TIME);
}
}
}
});
}
};