web-dev-qa-db-ja.com

iOSはBluetooth接続/切断を検出します

アプリがバックグラウンドにある場合でも、BluetoothデバイスがiOSに接続または切断されたときに通知を受け取ることはできますか? Androidでは、ACTION_ACL_CONNECTEDイベントとACTION_ACL_DISCONNECTEDイベントを使用します。しかし、iOSに相当するものが見つかりません。

Bluetoothイベントの監視に使用できるCBCentralManagerを見つけましたが、Bluetoothデバイスが接続/切断されているときに関数が呼び出されず、Bluetoothを有効/無効にした場合にのみ呼び出されます。それは私の側のエラーですか、それとも正常ですか?

また、オーディオルートの変更に関するドキュメントも見つけました。これは、Bluetoothの接続/切断を検出するためのアイデアにもなります。新しいルートの種類を確認し、その時点で接続されているBluetoothデバイスを検出するだけです。

ドキュメントでは、NSNotificationのようなIOBluetoothHostControllerXXXタイプも見つかりましたが、それらについては何も説明されていません。誰かがすでにそれらを使用しましたか?

より良いものがありますか、それとも私は何かが欠けていますか?

8
Gp2mv3

Bluetooth周辺機器の接続と切断に関する通知を受信することはできません一般的にアプリが接続するBLE周辺機器の接続および切断イベントを取得できます。

たとえば、アプリが心拍数センサーへの接続を開始した場合、接続が成功すると、CBCentralManagerDelegate接続関数が呼び出されます。その後、そのデバイスの電源がオフになるか、範囲外になると、切断デリゲートメソッドが呼び出されます。

他のアプリが接続を開始して確立した場合、コールバックは取得されません。

前述のように、オーディオルートの変更を監視して、Bluetoothオーディオデバイスが接続/切断されたと推測できますが、これはヘッドフォンが接続されている場合にも発生します。

8
Paulw11