我们使用Xcode 4.5.2开发IOS 6上的蓝牙低功耗技术。下载到IOS5设备上的应用程序可以连接到BLE设备。

3
我们使用Xcode 4.5.2开发基于IOS 6 SDK的蓝牙低功耗应用程序。该应用已下载到IOS5(iPad3)设备上,可以成功连接到BLE设备。然而,如果将此应用程序下载到IOS 6设备上,则会出现问题。该应用程序可以发现BLE设备(显示在列表中),但是当我们单击以连接时,它会失败。我们正在使用最新的iPod5。

您可能需要在此提供更多信息。连接这些设备的代码是什么样子的?它们是什么类型的设备?Core Bluetooth 是否报告了任何连接错误? - Brad Larson
为了得到帮助,您需要发布您的代码样本以及在iOS 6上遇到的错误。 - jim
我们正在使用从苹果下载的温度传感器示例代码。 - user1801909
2个回答

2
我认为这是iOS 6中提到的bug,参见iOS 6 UUID Problem
一个快速检查的方法是在发现周边设备时添加NSLog来检查其名称。
如果peripheralName为空或在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);

0

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

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


你尝试过去设置->通用->重置->重置所有设置吗?那将会重置蓝牙UUID缓存。 - David Rinck
@svaha 不,我喜欢我的设置。 - bioffe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接