よし、契約だ。Bluetoothが有効になっている2台のGalaxy Nexus電話を入手しました。
デバイスの検出と接続に使用する bluetooth 接続管理アプリを作成しました。また、デバイスがサポートできる利用可能なすべての UUID も出力します。
http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htmを見ると、次の標準 UUID が Galaxy Nexus デバイスから公開されています。
- 0x1116 - 昼寝
- 0x112f - PBAP (電話帳アクセス プロファイル)
- 0x111f - HFP (ハンズフリー)
- 0x1105 - OPP (オブジェクト プッシュ プロファイル)
- 0x1112 - HSP (ヘッドセット プロファイル)
- 0x110c - AVRCP
- 0x110a - A2DP
OPP プロファイル ( ) を介して接続しUUID 00001105-0000-1000-8000-00805F9B34FB
、デバイス間でオブジェクト (ファイル) をプッシュしようとしています。すべてのBluetooth接続を検出、ペアリング/結合(スレッド化など)、および管理する方法について、 Android APIドキュメント全体を調べました。SPP (0x1101) プロファイルを介してレガシー ボード デバイスに正常に接続し、通信することができました。
ただし、socket.connect()
2 台の Galaxy nexus フォン間で使用しようとすると、ペアリング ダイアログが表示さPair
れ、両方のデバイスでボタンをクリックします。その後、すぐにConnection Refused IOException
. 安全なリンクがキャッシュされているため、一度ペアリングが行われた後は二度と尋ねられないことに注意してください。
これらの標準 UUID を使用してこれらの標準プロファイルに接続できない場合、それらが公開されるのはなぜですか? アプリからこれらのプロファイルに接続して操作するにはどうすればよいですか? 私のアプリが何らかの形で信頼されていないからですか? 奇妙なのは、Android の機能でさえShare
まったく機能しないことです。これは Android で完全に壊れているものですか?
ドキュメントにあるように、「よく知られている UUID SPP 1 0x1101」を使用するためのヒントを与えないようにしてください。これは私が望むものではありません。私はこれがどのように機能するかについてかなりよく理解しており、問題の実際の解決策または説明を探しています。
典型的な「リフレクション」ソリューションを見てきましたが、なぜこれがまだ Android で問題なのか理解できませんか? なぜ人々はこれを機能させるためにリフレクションを使用するのでしょうか? これを修正するために Android のバグを報告できますか?
これらの UUID が標準である場合、どのアプリもそれらに接続して対話できるはずです。これが問題になる理由と、この例外が発生する理由を教えてください。
前もって感謝します。
アップデート
そのため、何らかの理由で Android システムのオブジェクト プッシュが機能し始めました。実際にアプリ経由で接続しようとしましたが、機能しませんでした。次に、連絡先アプリに行き、魔法のように機能する連絡先を共有しようとしました. その後、自分のアプリに戻ったところ、今では機能しています...うわー。それは非常に奇妙であり、これには説明が必要です。