我猜是这样,但是连接不成功吗?
0000180A-0000-1000-8000-00805f9b34fb
- (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(@[]);
}发布于 2020-10-27 16:21:31
蓝牙4.0可以使用16位和128位UUID值。显然,16位UUID在通告分组中占用较少的空间,但它们的数量较少。
蓝牙SIG为众所周知的服务分配16 bit UUIDs,并应请求分配给成员组织。当前赋值为here
例如,0x1801是GATT配置文件,0x180A是设备信息服务。
没有与16位UUID等效的128位UUID。
设备提供的服务列表与其通告的服务不同。
由于通告分组中的空间有限,设备通常只通告其服务的子集;即最“有用”的服务。
例如,心率监视器将广告心率服务(0x180D),而不是电池或设备信息服务,即使它最有可能提供这些服务。
这就是您在扫描服务0x180A时无法发现外围设备的原因-设备信息服务通常不会被通告。
一旦您连接到设备,您就可以发现它提供的所有服务。
https://stackoverflow.com/questions/64549899
复制相似问题