android - 蓝牙 RSSI 值在所有 Android 设备中始终以 dBm 为单位?

标签 android bluetooth rssi

我是 Android 新手,我的应用使用蓝牙从小型称重传感器放大器接收数据。虽然在某些设备(三星设备)中,BT 信号强度(RSSI)按预期变化(从近距离的 -20 左右到 10m 处的 -80 左右),但在其他一些设备(至少是 LG 型号)中,RSSI很奇怪,在短距离内约为 200(正值!)。我假设 LG 手机没有以 dBm 为单位提供 RSSI 值。在所有情况下,三星平板电脑和 LG 手机始终连接到同一远程设备(我的客户正在开发的放大器 sample )。实际上我的问题是,在这种情况下,不同的 Android 设备(或不同的 Android 版本)对同一个 API 调用的响应不同是否正常。

最佳答案

RSSI 是一个 8 位有符号二进制补码整数(-128 到 127)。 如果您以字节形式读取该值,那么您将获得任何设备的正确值范围。 如果您将其作为整数或字符串读取,您最终可能会在某些设备上得到正确的值,但在其他设备上却不正确...

200 作为一个 8 位有符号二进制补码整数等于 -56

关于android - 蓝牙 RSSI 值在所有 Android 设备中始终以 dBm 为单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609544/

相关文章:

java - ARcore - 在不使用 TransformableNode 的情况下无法旋转模型

android - 如何确保 apk 的安全以及应用程序最独特的标识符是什么?

android - 连接到特定的 HID 配置文件蓝牙设备

Android 2.1 检测蓝牙音频连接/断开

android - 使用不安全的 RFCOMM 蓝牙套接字时,android 何时显示配对对话框?

ios - 我没有得到正确的信号值来识别 iPhone 和蓝牙设备之间的距离

android - 如何将SpannableString写入parcel?

android - DownloadManager 多次广播 DOWNLOAD_COMPLETE

android - GSM RSSI 和 LTE RSSI 和 RSRP

ios - corebluetooth 读取 RSSI 错误 :The operation was cancelled