BLE是否支持ping,即向其他设备发送消息并接收其状态?
我想在Android上编写一个应用程序,它将ping每个附近的设备并计算发送时间和接收答案之间的时间,是否可能?
答案 0 :(得分:3)
正如您在评论中指出的那样,您希望使用到达时间或到达时间差算法来计算基于蓝牙的距离。
据我所知,这在蓝牙环境中更像是一种理论方法。当无线电信号以光速(在一纳秒内~29.979厘米)传播时,您需要高采样分辨率才能获得准确的结果。每个纳米级的偏差都会导致大约30厘米的误差。
使用WiFi,这是通过specalized芯片组实现的。据我所知,目前这对于android来说是不可能的,因为它需要大量的低级支持(芯片组和操作系统)
希望这有帮助!
这里有一些消息来源
答案 1 :(得分:0)
您可以在onScanResult方法中轻松查看每个设备的发现时间戳:
@Override
public void onScanResult(int callbackType, ScanResult result){
Long lastSeen = result.getTimestampNanos();
//rest of your code
}
请参阅Android Documentation。您可以使用此时间戳和开始扫描的时间来获得每个设备的近似响应时间。