短cbuuid与长cbuuid-ble连接ios



我猜是这样,但连接不成功?

0000180A-0000-1000-800-000805f9b34b

- (void)scan
{

NSMutableArray *serviceUUIDs = [NSMutableArray new];
NSDictionary* options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:CBCentralManagerScanOptionAllowDuplicatesKey];
[serviceUUIDs addObject:[CBUUID UUIDWithString:@"0000180A
[_sharedManager scanForPeripheralsWithServices:serviceUUIDs options:options];

// callback(@[]);
}

蓝牙4.0可以同时使用16位和128位UUID值。16位UUID显然在广告数据包中占用较少的空间,但它们的数量较少。

蓝牙SIG为众所周知的服务分配16位UUID,并应要求分配给成员组织。当前分配的值在此为

例如0x1801是GATT配置文件,0x180A是设备信息服务。

不存在与16位UUID等效的128位UUID。

设备提供的服务列表与其广告的服务列表不相同。

由于在广告分组中存在有限的空间,所以设备通常仅广告其服务的子集;最"实用"的服务;"有用";。

例如,心率监测器会宣传心率服务(0x180D(,但不会宣传电池或设备信息服务,尽管它很可能会提供这些服务。

这就是为什么在扫描服务0x180A时无法发现外围设备的原因-设备信息服务通常不会发布广告。

一旦你连接到一台设备,你就可以发现它提供的所有服务。

最新更新