这是我的扫描仪回调代码。
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() {
if (device == null) {
return;
}
if (!device.getName().startsWith("DEVICE_NAME")) {
System.out.println("Did not start with DEVICE_NAME, removing: " + device.getName());
return;
}
if (!devices.contains(device)) {
System.out.println("Valid DEVICE_NAME Adding: " + device.getName());
devices.add(device);
}
}
});
}
};
当我在某些地理位置扫描时,我得到一个空的BluetoothDevice
对象。例如,它在我的家或工作场所完美地运作。
但是,如果我把我的硬件+电话带到机场或大型万豪酒店,那么它就会混乱,并给我一个空的BluetoothDevice
。
null设备是什么意思,我该如何解决这个问题?
任何建议都将受到赞赏。
此致
答案 0 :(得分:1)
我在内部扫描时得到一个空
BluetoothDevice
个对象 某些地理位置。
如果您使用相同的BLE设备,则不会发生这种情况。在您的工作地点或家中,确保周围的BLE设备与测试目的相同。
null设备意味着什么
简单,因为没有找到设备。但作为参考,我只是引用developers guide。
您只能扫描蓝牙LE设备或扫描经典 蓝牙设备,如蓝牙中所述。你无法扫描两者 蓝牙LE和经典设备同时使用。
我想在这里分享我的一些经验。扫描附近的设备时,需要发现一些蓝牙设备。你也需要牢记这一点。
如果有帮助,请告诉我!