在 Android BLE 中自定义 UUID 有问题

Sun*_*Kim 3 android bluetooth characteristics bluetooth-lowenergy gatt

我在使用自己生成的 UUID(不使用蓝牙 SIG 保留的 16 位 UUID)在 Android BLE 中进行通信时遇到问题。

目标设备有两个 - 一个作为外围设备(三星 Galaxy Note 4/android 5.1.1),另一个作为中央设备(三星 Galaxy S5/android 5.0.1)。我将自己的服务的 UUID 和特性的 UUID 放在外围设备端。在中心一侧,它找不到特色,但找到服务。

这似乎是由于不使用这些特征 UUID 之一而是使用自定义生成的 UUID 引起的。下面是我自己生成的 UUID。

private static final UUID CUSTOM_SERVICE_UUID = UUID.fromString("abcd1111-0000-1000-8000-00805f9b34fb");
private static final UUID CUSTOM_CHARACTERISTIC_UUID = UUID.fromString("abcd1112-0000-1000-8000-00805f9b34fb");
Run Code Online (Sandbox Code Playgroud)

服务,发现很好,但有特色,没有。你有什么主意吗?

小智 6

您正在使用官方基本 UUID:xxxxxxxx-0000-1000-8000-00805f9b34fb,其中所有上位 32 位都被保留(一些已经分配。)

相反,您应该使用自己的 128 位 UUID。您可以使用在线工具生成一个。然后只需将您自己的内部 n 位短 uuid 分配给您的每个特征。

例如:使用基数 => 18902a9a-1f4a-44fe-936f-14c8eea418xx

  • 服务 => 18902a9a-1f4a-44fe-936f-14c8eea41800
  • 特性 => 18902a9a-1f4a-44fe-936f-14c8eea41801