gpt4 book ai didi

android - onLeScan 回调返回奇怪的正 RSSI 值

转载 作者:行者123 更新时间:2023-11-29 01:38:26 27 4
gpt4 key购买 nike

在 Android 上使用低功耗蓝牙 (BLE) 扫描时,我注意到有时 RSSI 值不正确。我的代码只是调用开始扫描函数:

mBluetoothAdapter.startLeScan(mLeScanCallback);

然后我在回调中读取结果并将结果保存在文件中:

 private static BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, final int rssi, final byte[] scanRecord) {
String objScanRec = bytesToHex(scanRecord);
outStr = rssi + ";" + objScanRec + ";" + device.getName() + ";" + beaconLocation + ";\n";
try {
Raw_log.write(outStr);
Raw_log.flush();
} catch (IOException e) {
e.printStackTrace();
}
// }

}
};

问题是我读取了正的 RSSI 值,即使信标位于固定距离也是如此。例如。我的信标距离手机(或智能 watch )30 厘米,我读到的值约为 -45,这是现实的,但也有大约 +80 或 +100 的值(这不现实),这些值约为测量值的 20%。有什么我想念的吗?谢谢

最佳答案

感谢您的帮助,我发现这是一个仅与 Samsung Gear Live 相关的问题。我想出了这个解决方案:

if(rssi > 0){
rssi = rssi - 128;
}

我已经测试了该解决方案,它运行良好。 (例如,校正后获得的正值现在与负值相似,例如我阅读
-44 -45 -43 84 82
在 correctio 之后变成:-44 -45 -43 -44 -46)

关于android - onLeScan 回调返回奇怪的正 RSSI 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26415017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com