我正在尝试开发一个能够检测蓝牙低功耗信号的应用程序,并且感谢适配器,将其显示在 Listview 中。目前工作得很好,但现在我想做的是 onLeScan 方法,这样当扫描找到一个设备时,它将设备和 rssi 值与列表中的所有元素进行比较。如果两个参数与列表中的一项相同,则不会调用适配器添加找到的设备。但是,当我编译代码时,它会检测到 BLE 信号,但 rssi 值不会改变。
这是我使用的代码:
// Device scan callback.
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) {
runOnUiThread(new Runnable() {
@Override
public void run() {
int size = leDeviceListAdapter.getCount();
for(int j = 0 ; j < size ; j++) {
BluetoothDevice devices = leDeviceListAdapter.getDevice(j);
Integer signal = leDeviceListAdapter.getRSSI(j);
if (devices!=device && signal!=rssi){
return;
}
}
leDeviceListAdapter.addDevice(device, rssi);
leDeviceListAdapter.notifyDataSetChanged();
}
});
}
有谁知道如何解决这个问题?请帮忙!!!!如果有必要,我将把整个代码。