android - 了解 UUID 的长格式和短格式

标签 android bluetooth uuid

我正在尝试在 android 中学习一些蓝牙编程
我已经能够制作一个基本程序来发现并连接到一个(目前只有一个)具有内置蓝牙功能的开发板
我希望能够使用 RFCOMM
向开发板发送命令并从中接收消息 有人告诉我,如果不知道电路板和手机的 UUID,我可能无法继续前进
在对此进行深入研究时,我发现该板使用 0xFFFF 的 UUID 用于自定义服务发现协议(protocol),并且 I also found from here that it is possible in SDP to represent some selected range of UUID's using only 16 bits ,可以扩展到 128 位,但我不知道如何进行扩展,页面中给出的链接似乎已损坏
有人可以简单解释一下 UUID 是什么(在蓝牙方面,特别是在 RFCOMM 方面),它们对我在蓝牙编程中的意义是什么,以及我如何从 16 位获得 128 位 uuid我的开发板使用的版本?
提前致谢。

最佳答案

通用唯一标识符主要用于低功耗蓝牙 (BLE),例如用于访问电子套件中硬件传感器的功能。例如,如果我们有一个集成加速度计传感器和陀螺仪传感器的套件,可以通过智能手机设备(连接到套件)使用蓝牙启用,那么您必须使用 UUID 告诉套件您实际想要访问套件的加速度计服务。

UUID 是 128 位值。以下 UUID 是 SensorTag 设备的示例:

F000AAAA-0451-4000-B000-000000000000

其中 AAAA 是重要的 16 位 (0xAAAA),用作每个服务的“ID”。

套件中的加速度计服务具有以下 UUID:

F000AA10-0451-4000-B000-000000000000

并且陀螺仪传感器需要遵循UUID才能访问其服务

F000AA50-0451-4000-B000-000000000000

如果您随后使用这些 UUID 之一对远程设备执行任何蓝牙操作,那么它就会知道您正在尝试访问哪个服务。

关于android - 了解 UUID 的长格式和短格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27656306/

相关文章:

r - 如何在 R 中生成 GUID?

android - 从 G-Shock watch 蓝牙 android 获取 UUID

android - 在 kotlin 上从 this@ 更改名称

java - 如何在 Android 偏好设置中使用 DatePicker

android - 日期比较 Sqlite Android

Android 市场 - 在没有蓝牙的情况下无法在特定设备上找到应用程序

ios - 在iOS模拟器/Xcode上模拟蓝牙设备

java - 如何组合正交相机 X、Y 和输入处理器 screenX、screenY?

android - 允许两台设备使用 wifi 接口(interface)在 Android 上相互查看?

postgresql - 使用 clojure.java.jdbc/db-do-prepared 检查 uuid 是否存在于 PostgreSQL 表中失败