【问题标题】:蓝牙在可见时会传输什么
【发布时间】:2022-01-21 03:38:44
【问题描述】:

我想知道蓝牙在可见、未连接时会传输什么。我用谷歌搜索,我看到它传输设备名称和 MAC 地址,但只有它们?我们可以添加一些额外的数据还是可以动态更改它们?

【问题讨论】:

    标签: bluetooth android-bluetooth


    【解决方案1】:

    对于经典蓝牙(即 Android API 级别 21 之前的版本),您受限于可以在查询响应中发送的数据(即无线发送的无连接数据)。可以通过无线方式发送三种类型的查询响应数据:-

    查询结果:-

    RSSI查询结果:-

    扩展查询结果:-

    换句话说,根据扫描设备的要求,结果可能会有所不同,即使在所有情况下它不仅仅是名称和 MAC 地址,您也不能在查询响应中添加随机的额外数据。


    对于低功耗蓝牙(即 Android API 级别 21 及更高版本),广告数据可以是动态的并且可以配置。最小广告报告只能包含设备的蓝牙地址(公共地址或随机地址)。换句话说,即使设备的名称也不是必需的。但是,通常会同时包含地址和名称,因为这样可以提供有关广告设备的更多信息。

    您可以在Bluetooth Specification v5.2,第 6 卷,B 部分,第 2.3.1 节(广告 PDU)中了解更多信息。另请查看以下链接以获取更多信息:-

    【讨论】:

    • 感谢您的评论,我做了一些研究,发现蓝牙低功耗可用于 21 级及以上的安卓 API。 api 级别 14 有其他选择吗?我将使用这项技术在 10、20 或 100 台设备之间共享一些信息。但是这个设备不会配对,只是收到一个小值,就是这样,关闭蓝牙。也许您有其他想法?
    • 我已经更新了我的答案以包括经典蓝牙部分
    • 感谢您如此详细的评论。我们可以通过更改这些值来发送一些数据吗?喜欢用我们的数据更改 Class_Of_Device 吗?还是有其他办法?
    • 理论上你可以改变设备的类别来发送一些数据,但不幸的是这违反了蓝牙规范,这就是我不推荐它的原因。如果可以的话,我个人的建议是向我们推荐低功耗蓝牙。通过广告发送数据是 BLE 相对于经典蓝牙的众多优势之一。 BLE 自 2012 年以来一直在使用,因此现在大多数设备都支持它。
    猜你喜欢
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多