3

我们使用 Xcode 4.5.2 在 IOS 6 SDK 上开发低功耗蓝牙应用程序作为中心。下载到 IOS5(iPad3) 设备的应用程序可以毫无问题地连接到 BLE 设备。但是,如果此应用程序要下载到 IOS 6 设备,则会出现问题。应用程序可以发现 BLE 设备(显示在列表中),但是当我们单击连接时,它失败了。我们使用的是最新的 iPod5。

4

2 回答 2

2

我相信这是这里提到的 iOS 6 错误:iOS 6 UUID Problem

一种快速检查的方法是添加一个 NSLog 以在发现外围设备时检查外围设备名称。

如果 peripheralName 为 Null,或者如果它在 CFUUIDCreateString 上崩溃,您就发现了问题。我发现修复的唯一方法是首先连接到外围设备 [manager connectPeripheral:peripheral options:nil],然后断开连接并重新连接。完成后,您应该能够毫无问题地使用 CFUUIDCreateString。

- (void) centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
   if (peripherals.count == 0)
   {
        [peripherals addObject: peripheral];
        NSString *peripheralName;
        peripheralName = [peripheral name];
        NSString *foundDevice = (NSString *)CFBridgingRelease(CFUUIDCreateString(NULL, [peripheral UUID]));
        NSLog(@"Found %@", peripheralName);
于 2013-01-08T19:35:27.017 回答
0

我知道这听起来很奇怪,但 iPad3 iOS6 也有可怕的 BLE 问题。即外设名称不反映我在微控制器软件中引入的更改。

我有 iPhone5 和 iOS 6.1 beta 4 和 iPhone 4s iOS 6.0。两者都与我的 CC2540 项目完美配合。

于 2013-01-16T19:48:44.513 回答