9

さて、私は、ios 6.0.1 で「bluetooth le」デバイスをスキャンして接続するアプリケーションを持っていますが、iPhone 4s ではうまく動作します。アプリケーションをAppleストアにアップロードすると、アプリケーションのクラッシュ、バットプログラミングが返されますが、クラッシュを理解できるのは、iPhone5でアプリケーションを試したときだけです。

 - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI; 

uuid が null のペリフェラルを返してください。

周辺機器、名前、uuid、rssi、および advertData を出力します。すべて問題ありませんが、uuid は null であり、アプリケーションで uuid を使用します。これにより、アプリケーションがクラッシュします。null uuid を制御できます。これは、アプリケーションを制御できないことを意味します。

誰かが何が起こるか知っていますか、そして可能な解決策はありますか?

4

3 に答える 3

2

私たちがしなければならないことは次のとおりです。NSLog を使用して周辺オブジェクトを書き込むことはできませんが、接続が実行される前に周辺機器の uuid プロパティを取得することはできません。それは常にヌルでした。以前ではなく、サービスの読み取りが終了したときにuuidを要求すると、i-phone5でアプリケーションをクラッシュせずに実行できなくなります。

TI (テキサス・インスツルメンツ) で、これは ios のバグであると読みましたが、これはセキュリティ更新プログラムであると思います。uuid を要求する前に接続する必要があります。

于 2012-12-10T11:17:41.790 に答える
1

最初の接続後、UUID はデバイスによって記憶/キャッシュされます。後で同じ周辺機器が検出された場合、UUID は接続前に利用可能になります。「retrievePeripherals」を呼び出すことで、記憶されているすべての周辺機器を要求できます。

于 2012-12-19T22:36:49.723 に答える