CoreBluetooth コードを iOS 6 から iOS 7 に更新する際に問題が発生しています。周辺機器をスキャンして接続することはできますが、iOS 7 で提供される新しい CoreBluetooth メソッドを使用して周辺機器を再接続することはできません。再接続を達成しようとしている方法:
- (void)retrievePeripheral:(NSString *)uuidString
{
NSUUID *nsUUID = [[NSUUID UUID] initWithUUIDString:uuidString];
if(nsUUID)
{
NSArray *peripheralArray = [centralManager retrievePeripheralsWithIdentifiers:@[nsUUID]];
// Check for known Peripherals
if([peripheralArray count] > 0)
{
for(CBPeripheral *peripheral in peripheralArray)
{
NSLog(@"Connecting to Peripheral - %@", peripheral);
[self connectPeripheral:peripheral];
}
}
// There are no known Peripherals so we check for connected Peripherals if any
else
{
CBUUID *cbUUID = [CBUUID UUIDWithNSUUID:nsUUID];
NSArray *connectedPeripheralArray = [centralManager retrieveConnectedPeripheralsWithServices:@[cbUUID]];
// If there are connected Peripherals
if([connectedPeripheralArray count] > 0)
{
for(CBPeripheral *peripheral in connectedPeripheralArray)
{
NSLog(@"Connecting to Peripheral - %@", peripheral);
[self connectPeripheral:peripheral];
}
}
// Else there are no available Peripherals
else
{
// No Dice!
NSLog(@"There are no available Peripherals");
}
}
}
}
uuidString は、保存されたペリフェラル UUID です。
使用可能なペリフェラルがない NSLog ステートメントに常にアクセスしています。私は非常に明白な何かを見逃していると思います.誰かが私を正しい方向に向けることができます.
さらに、CoreBluetooth の iOS 7 アップデートの問題に関する他の投稿を読み、BLE デバイスと iOS デバイスをリセットしようとしましたが、役に立ちませんでした。
前もって感謝します!可聴