读取Android Studio中连接的蓝牙低功耗设备的RSSI值

时间:2015-10-22 08:36:04

标签: android android-studio bluetooth bluetooth-lowenergy rssi

我正在开发Android Studio中的BLE项目,并希望读取已连接到的设备的RSSI值。到目前为止,我能够通过LE Scan发现新设备并从那里获取RSSI。但是,一旦我连接到设备,我就无法再运行扫描并获得RSSI。

这是在连接到其中一个设备之前发现新设备的代码。不知道它与我的问题有多相关:

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() {
                mLeDeviceListAdapter.addDevice(device, rssi);
                //mLeDeviceListAdapter.notifyDataSetChanged();
                try {
                    mLeDeviceListAdapter.notifyDataSetChanged();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
};

提前致谢

1 个答案:

答案 0 :(得分:4)

您必须使用 readRemoteRssi()异步调用,然后使用回调获取RSSI值。 https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#readRemoteRssi()

详情请参阅 https://stackoverflow.com/a/20236561