12

P2P ネットワークの目的で、ペアリングされていない 2 つの Android デバイスを Bluetooth 経由で接続しようとしています。MitM 保護は必要ありません。Android には(API レベル 10 以降) このための機能がcreateInsecureRfcommSocketToServiceRecordありlistenUsingInsecureRfcommWithServiceRecord、最新のデバイスで完全に機能します。ただし、Galaxy Ace (Android 2.3.3 = API レベル 10、Galaxy Nexus と接続) では、ペアリング ダイアログが作成されます。これは、着信接続と発信接続の両方で発生します。(更新:Galaxy AceをAndroid 2.3.6にアップデートすると、明らかに問題が修正されます。これを常に/まったくしない特定のAndroidバージョンはありますか?)

ペアリングが受け入れられると、接続が機能します。このため、これはIssue 40101: createInsecureRfcommSocketToServiceRecord によって、サービス レコードが存在しない場合にのみ発生するはずの Android 4.2 でペアリング ダイアログが発生することとは関係がないと思います。

このダイアログが表示されるデバイスでは、このダイアログを回避できないと思います(可能な場合、これを行う方法を説明することは有効な答えです)。このため、そのようなダイアログがいつ表示されるかを知りたいです。Android Java ソースには何も見つかりませんでした (すぐにネイティブになります)。Ace には Bluetooth 2.1 が搭載されており、必要な「正常に動作する」接続をサポートするはずなので、Bluetooth バージョンと関係があるとは思えません。

デバイスがダイアログをポップせずに接続をサポートするかどうか、または特定の Android バージョンに明確に修正されているかどうかを検出できるものがあれば、それは非常に役立ちます。

また、そのようなデバイスを簡単に除外する方法を探しています。

4

1 に答える 1