CBCentralManager
を使用してBluetoothデバイスを検出して接続しようとしています。デバイスはヘッドセットです。それは電話でのブルートゥーススキャンによって発見することができます。デバイス名は「A1-25」です。 「A1-25」を電話機のBluetooth設定から直接接続すると、曲を再生できます。うまくいきます。iOS Core Bluetooth - スキャンから実際のデバイスを検出できません。
しかし、私はCBCentralManager
を使用して周辺機器をスキャンし始めたとき。私は "A1-25"という名前の周辺機器を見ることができません。しかしむしろ、私は "EQ_Test_llyan"という名前の周辺機器を見た。しかし、Bluetoothの設定から近くのデバイスをスキャンする前に、 "EQ_Test_llyan"が表示されませんでした。
2017-12-13 16:35:07.233021+0800 Test[1405:500801] started scanning
2017-12-13 16:35:17.469375+0800 Test[1405:500801] discovered peripheral with name EQ_Test_llyan advertisementData:{
kCBAdvDataIsConnectable = 1;
kCBAdvDataLocalName = "EQ_Test_llyan";
kCBAdvDataManufacturerData = <b0024551 5f544553 54>;
}
2017-12-13 16:35:17.470672+0800 Test[1405:500801] connecting with device!!!!!!!
2017-12-13 16:35:17.654884+0800 Test[1405:500801] connected to peripheral name:EQ_Test_llyan id:7326E741-BF68-D9E8-D7A6-5F27227685A7
2017-12-13 16:35:17.656526+0800 Test[1405:500801] discovering services for peripheral name:EQ_Test_llyan
2017-12-13 16:35:18.193311+0800 Test[1405:500801] discovered services:(
) for peripheral name:EQ_Test_llyan
周辺「EQ_Test_llyanは」(ログ上記参照)は、サービスを持っていないので、私はそれと通信することはできません。今、私が電話設定でBluetoothデバイスに戻ったとき、私は今 "EQ_Test_llyan"に接続していますが、 "A1-25"には接続していません。さて、私は音楽を演奏しようとすると、音がヘッドセットから出てこない。
私はヘッドセットをオフにすると、私は「EQ_Test_llyan」から切断され、「A1-25が」消えてしまいます。したがって、私は "EQ_Test_llyan"と "A1-25"は同じデバイスから来ていると結論づけます。
私は両方に同時に接続できることに注意してください。プログラムで "EQ_Test_llyan"に接続するだけで、設定に表示されます。それから私は手動で "A1-25"に電話設定から接続します。それは、下の図に示すようなものです。音楽を聴くと、ヘッドセットからの音が聞こえます。だから、私は "A1-25"に接続していて、 "EQ_Test_llyan"だけには接続していない限り正常に動作しています。
だから私の質問は以下のとおりです。
- CBPeripheralは、実際のデバイスに言及されていますか?なぜなら、もしそうなら、 "A1-25"をスキャンできないのですが、 "EQ_Test_llyan"をスキャンできますか?
- 電話機が「A1-25」に接続されていて、その電話機の横に「i」が表示されている場合は、接続を終了できることに注意してください。しかし 電話機が「EQ_Test_llyan」に接続されているときは、「i」は の横にありません。したがって、あなたが デバイスをオフにしない限り、接続を切断することはできません。では、2つの違いは何ですか? 「AI-25」は 実際のデバイスですが、「EQ_Test_llyan」は単なる接続ですか?私は を理解していません。
こんにちは、お返事ありがとうございます。そうだとすれば、まだBluetoothヘッドセットのマイクから音を取り出してアプリから再生することは可能でしょうか?私は、BLE GATTのプロフィールのサウンド関連のプロファイルはないと言ったのですか?だから、BLEでリアルタイムのサウンドデータを渡すことができないのですか? –
リアルタイムサウンドをBLE接続で渡すことはできません。不適切なAPIがあり、低速でサウンドを送信するために実行されます。 ヘッドセットを使用して、アプリからサウンドを再生して録音できます。電話設定画面でヘッドセット(A1-25)をペアにします。その後、内蔵マイクとスピーカーではなく、ヘッドセットを使用するようにアプリでオーディオセッションを設定する必要があります。 – fedulvtubudul
理解していただきありがとうございます! –