首页 > 解决方案 > BLE如何将uuid设置为16bit

问题描述

我正在创建一个通过 BLE 发布数据的应用程序。我正在从这样的 128 位 UUID 创建 ParcelUuid

pUuid = new ParcelUuid(UUID.fromString("128-bit UUID)

我正在像这样将它添加到 AdvertiseData

aData = new AdvertiseData.Builder()
                        .setIncludeDeviceName(true)
                        .addServiceData(pUuid, data.getBytes(Charset.forName("UTF-8")))
                        .build();

现在发生的事情是,有时它像数据包中的 16 位 UUID,有时像 128 位 UUID。

如何将其设置为始终仅作为 16 位 UUID 出现???

标签: androidbluetooth-lowenergy

解决方案


如果要声明 16 位 UUID,则必须使用 base-uuid,它是固定的:

0000xxxx-0000-1000-8000-00805F9B34FB

例如

ParcelUuid pUuid = new ParcelUuid(UUID.fromString("00001234-0000-1000-8000-00805F9B34FB");

BLE 标准将此 UUID 识别为 16 位。

您可以在此处阅读有关 16 位 UUID的更多信息


推荐阅读