iPhone 3GS を使用して iOS 4.2 で実行している場合、EAAccessoryManager で connectedAccessories メソッドを呼び出すと、アクセサリが 1 つだけのリストが返されます (Bluetooth 画面で使用可能な接続済みアクセサリからランダムに選択されたように見えます)。
振り返ってみると、iPhone 4 の iOS 5.0 では、このメソッドはアクセサリの正しいリストを返します (現在 2 つまでテスト済み)。ドキュメントによると、iOS 4.0 はアクセサリのリストを返すはずですが、これに複数のアイテムを含めることができるかどうかは言及されていません。(明らかに、iOS 3.0 では 1 つのデバイスのみがサポートされていました)。
EAAccessoryDidConnectNotification 通知も、iOS 4.0 で実行されている場合、ランダムに選択されたアクセサリに対して 1 回だけ発生します。アクセサリを無効にすると、そのアクセサリに適切な EAAccessoryDidDisconnectNotification が発生します。アクセサリを再度有効にしても、Bluetooth 設定メニューに戻ってデバイスを再接続しない限り、それ以上の通知は発生しません (ただし、これは別の厄介な問題です)。Bluetooth接続画面にアクセスすると、最初に接続されていたアクセサリが切断されておらず、2番目のアクセサリが接続されていることがわかりますが、「connectedAccessories」メソッドをさらに呼び出すと、空のリストが返されます。
電話からコンソール ログを表示すると、Bluetooth システムが両方のデバイスを接続して監視していることがわかりますが、これは外部アクセサリ フレームワークを介して提示されていません。
誰かがこの問題に関する有益な情報を持っていれば、それは素晴らしいことです-このフレームワークを使用したことのあるiOS開発者はごくわずかであるように思われるため、元のAppleドキュメントのコピー以外のものを見つけることはかなり困難です:-D .
要約すると:
iOS から複数のアクセサリを検出し、複数のデバイスに接続してセッションを開くことは可能ですか。これは、iPhone 4 の iOS 5.0 で可能であることがわかりました。
どうもありがとう、クリス