Android中扫描蓝牙低功耗信号的问题?

时间:2014-03-14 18:08:37

标签: android bluetooth-lowenergy

我正在尝试开发一款能够检测蓝牙低功耗信号的应用程序,并借助适配器,在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();



                    }
                });

            }

有谁知道如何解决这个问题?请帮忙!!!!如果必要的话我会把整个代码。

0 个答案:

没有答案