【发布时间】:2019-09-05 05:36:14
【问题描述】:
我有一个模块设备(Galaxy S2,API 16),这个设备用作服务器模块。
我需要服务器设备和客户端设备之间的距离。
试一试。 我尝试使用 RSSI 值来获取距离。 (使用 BroadCastReceiver、android.bluetooth.device.action.found 和 EXTRA_RSSI)
但它仅适用于未配对的设备,并且需要始终允许蓝牙搜索模式。
我认为我的客户不喜欢我不能使用它。
尝试 2。 我尝试使用 BluetoothGattServer - readRemoteRSSI()。
但是 gatt 服务器需要 API 18,我的服务器模块是 16。我不能使用它。
尝试 3。 我连接了服务器和客户端(经典蓝牙)进行数据通信。
我认为一些数据包会因距离而丢失。 (我猜数据丢失 = 距离)
但是,RFCOMM 是完美的。数据完全在蓝牙范围内接收和发送。
我认为原因是 RFCOMM 类似于 TCP PROTOCOL。 (只是我的猜测)
然后我尝试使用 L2CAP 协议。 (原因类似于UDP。我猜它会丢包。)
但是,android 不提供 L2CAP 协议。
我能做些什么来获得距离?
ps)对不起我的英语。感谢阅读。
【问题讨论】: