我正在尝试在 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/