android - 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 出现???
解决方案
如果要声明 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的更多信息
推荐阅读
- list - 合并字典列表
- python - 教程 4 中的 Django 教程错误(/polls/1/ 处的操作错误)
- sql-update - 如何使用 Amazon Redshift 中的临时表列更新现有表中的列?
- javascript - 在浮动 div 中设置 CKEditor 5(Vue 组件)的高度
- sql - PostgreSQL - 在 JOIN 条件中不允许使用聚合函数
- php - 查询以显示基于最新日期的最新值
- wildfly - 从 Wildfly 20 升级到 23.0.1 后,infinispan 缓存中的超时消息记录和重试风暴
- javascript - 为什么我的 React 组件找不到元素?
- sql - 选择过期日期最近的记录
- c++ - g++ -std=c++17 给出一行一行的错误