iOS6 の一体何が起こっているのか、Bluetooth LE の切断をどのように処理するのか? デバイスがすぐに切断される前に、何らかの奇妙な理由で、デバイスが約 30 ~ 60 秒間切断を待機します。ASAFP を切断するために必要です。
周辺機器からの即時切断を開始する方法を見つけようとして、インターネット全体を焼き尽くしていましたが、回避策を説明するこの気の利いたメールを見つけました。これは、サービス特性に関する通知の購読を解除することです.
今、私はそれをやっていると思います..切断したいときは電話します[connected_device setNotifyValue:NO forCharacteristic:connected_characteristic]
次に、didUpdateNotificationStateForCharacteristic 関数で、私は...
if((int)characteristic.isNotifying == 0){
[manager cancelPeripheralConnection:peripheral];
}
関数 didDisconnectPeripheral で...
connected_peripheral = nil;
connected_characteristic = nil;
[connected_peripheral release];
[connected_characteristic release];
また、Apple のCoreBluetooth 温度センサーの例もよく調べましたが、あまり役に立ちませんでした....
これに関するどんな助けも素晴らしいでしょう!! 何が欠けているのかわかりません.....
更新: 切断を許可する前に、少なくとも 1 分間はアプリを Bluetooth デバイスに接続する必要があるようです。アプリが 1 分以上接続されている場合、コマンドが送信されるとすぐに切断されます。それ以外の場合は、実際に切断されるまで 1 分のマークまで待機します。
更新: 1 分前に切断しようとすると、デバイスが実際に切断されたときに次の出力がログに記録されます。
Oct 24 16:49:35 Christophers-iPhone awdd[8168] <Error>: libMobileGestalt copySystemVersionDictionaryValue: Could not lookup ReleaseType from system version dictionary
Oct 24 16:49:35 Christophers-iPhone awdd[8168] <Error>: CoreLocation: CLClient is deprecated. Will be obsolete soon.