【问题标题】:How to get each device's distance from bluetooth?如何获取每个设备与蓝牙的距离?
【发布时间】: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)对不起我的英语。感谢阅读。

【问题讨论】:

    标签: java android bluetooth


    【解决方案1】:

    蓝牙不是获取距离的理想无线技术。 5.1 版引入了到达角 (AoA) 和出发角 (AoD) 功能,以获得更好的定位能力,但在此之前的任何版本(包括 Galaxy S2 蓝牙版本的 4.0 版)都只会给你一个大概的 (近或远),并且相对不准确。请在此处查看类似的问题/答案:-

    我希望这会有所帮助。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多