我正在使用
[central connectPeripheral: peripheral options: nil];
和
NSData *data1 = [NSData dataWithBytes:serialPortServiceUuid length:SERIAL_PORT_SERVICE_UUID_LEN];
CBUUID *uuid1 = [CBUUID UUIDWithData:data1];
NSData *data2 = [NSData dataWithBytes:deviceIdServiceUuid length:SERVICE_UUID_DEFAULT_LEN];
CBUUID *uuid2 = [CBUUID UUIDWithData:data2];
[peripheral discoverServices:@[uuid1, uuid2]];
有时会找到我的外设的两种服务,有时只有一种(UUID = Device Information
)。在我看来,如果在连接尝试之间有一段时间它会更可靠,并且如果它应该自动重新连接则会更频繁地失败(我在{{connect
中执行disconnect
1}})。
令我恼火的是,似乎已建立连接并且找到了服务,但只有一个而不是两者(我正在寻找带有ID的服务,而不是nil
)。< / p>
有什么想法吗?
修改的
我的外围设备是定制的医疗产品,当设置连接时,一切都按预期工作&#34;手动&#34;而不是通过重新建立。
那么有效的方法是按一个按钮然后执行connectPeripheral
=&gt; discoverServices
这件事,不起作用的是在connectPeripheral
方法中执行didDisconnect
; didDiscoverServices
也被调用,但只有一个而不是两个服务。