我猜是这样,但连接不成功?
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时无法发现外围设备的原因-设备信息服务通常不会发布广告。
一旦你连接到一台设备,你就可以发现它提供的所有服务。