Android BLE中的自定义UUID有问题

Android BLE中的自定义UUID有问题,android,bluetooth,bluetooth-lowenergy,gatt,characteristics,Android,Bluetooth,Bluetooth Lowenergy,Gatt,Characteristics,我在Android BLE中使用自己生成的UUID(不使用蓝牙SIG保留的16位UUID)进行通信时遇到问题 目标设备有两个-一个作为外围设备(三星galaxy note 4/android 5.1.1),另一个作为中央设备(三星galaxy S5/android 5.0.1)。我将自己的服务的UUID和特性的UUID放在外围端。在中央,除了服务,它找不到特色 这似乎是由于没有使用其中一个,而是使用自定义生成的UUID造成的。 下面是我自己生成的UUID private static final

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

目标设备有两个-一个作为外围设备(三星galaxy note 4/android 5.1.1),另一个作为中央设备(三星galaxy S5/android 5.0.1)。我将自己的服务的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");
服务,发现不错,但有特点,没有。
你知道吗?

你使用的是官方基地UUID:xxxxxxxx-0000-1000-8000-00805f9b34fb,所有的高位32位都保留在这里(有些已经分配)

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

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

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

我发现,如果我像这样使用UUID,它会工作得很好<代码>服务UUID:000018XX-0000-1000-8000-00805f9b34fb特征UUID:00002AXX-0000-1000-8000-00805f9b34fb※XX-在特定位置使用特定编号需要任何数字吗?谢谢@smertrios,但如果我使用自己生成的128位UUID,AdvertiseCallback返回带有
AdvertiseCallback的错误代码。在
onStartFailure(int errorCode)
@SunggookKim上,ADVERTISE\u失败\u数据太大
此错误是因为您的广告负载中有太多数据。您总共被限制为31个字节,其中每个数据段(UUID、名称等)使用[byte length+AD Type+data]编码进行帧化。因此,128位UUID将占用1+1+16字节的有效负载。在您的情况下,看起来您已经用完了所有31字节的有效负载。可能的罪魁祸首:您正在调用setIncludeDeviceName(true),并且您的设备名太长。。。