我正在开发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();
}
}
});
}
};
提前致谢
答案 0 :(得分:4)
您必须使用 readRemoteRssi()异步调用,然后使用回调获取RSSI值。 https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html#readRemoteRssi()