Xcode 4.5.2 を使用して、iOS 6 SDK の中心として Bluetooth Low Energy アプリを開発しています。iOS5(iPad3)端末にダウンロードしたアプリは問題なくBLE端末に接続できます。ただし、このアプリを IOS 6 デバイスにダウンロードする場合、問題が発生します。アプリは BLE デバイス (リストに表示) を検出できますが、クリックして接続すると失敗します。最新のiPod5を使用しています。
質問する
1018 次
2 に答える
2
これは、ここで言及されている iOS 6 のバグだと思います: iOS 6 UUID 問題
すばやく確認する方法は、周辺機器を検出するときに周辺機器名を確認するために 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
私はこれが奇妙に聞こえることを知っていますが、iPad3iOS6でひどいBLEの問題も抱えています。つまり、周辺機器の名前は、マイクロコントローラーのソフトウェアに導入した変更を反映していません。
私はiOS6.1ベータ4とiPhone4siOS6.0を搭載したiPhone5を持っています。どちらも私のCC2540プロジェクトで問題なく動作します。
于 2013-01-16T19:48:44.513 に答える