申し訳ありません。私はBluetooth対応のGalaxy Nexus携帯電話を2台持っていました。Android Bluetooth IOException:接続が拒否されました
私はデバイスの検出と接続に使用するBluetooth接続管理アプリケーションを作成しました。また、デバイスがサポートできるすべての利用可能なUUIDを出力します。
http://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm次の標準的なUUIDは、Galaxy Nexusデバイスから公開されています。
- 0x1116 - NAP
- 0x112f - PBAP(電話帳アクセスプロファイル)
- 0x111f - HFP(ハンズフリー)
- 0x1105 - OPP(オブジェクトプッシュプロファイル)
- 0x1112 - HSP(ヘッドセットプロファイル)
- 0x110c - AVRCP
- 0x110a - A2DP
OPPプロファイル(UUID 00001105-0000-1000-8000-00805F9B34FB
)で接続し、デバイス間でオブジェクト(ファイル)をプッシュしようとしています。私はすべてのBluetooth接続を検出、ペア/ボンド(スレッドなど)し、管理する方法についてはAndroid API documentation全体に行ってきました。私は正常に接続し、SPP(0x1101)プロファイルを介してレガシーボードデバイスと通信することができました。
しかし、ギャラクシーネクサスの2台の電話機の間でsocket.connect()
を使用しようとすると、ペア設定のダイアログが表示され、両方のデバイスでPair
ボタンをクリックします。その後、すぐにConnection Refused IOException
になります。ペアリングが一度発生した後は、安全なリンクがキャッシュされているので意味をなさないことに再度尋ねられることはありません。
これらの標準のUUIDを使用してこれらの標準プロファイルに接続できない場合、なぜ公開されますか?私のアプリからこれらのプロファイルのいずれかに接続し、それらとやりとりするにはどうすればいいですか?それは私のアプリがどうにか信頼されていないからですか?奇妙なことは、AndroidのShare
機能も全く機能しないということです。 Androidで完全に壊れているのですか?
ドキュメントのように「よく知られているUUID SPP one 0x1101」を使用するためのヒントは避けてください。これは私が望むものではありません。私はこのことがどう機能するかをかなりよく理解しており、問題の実際の解決策や説明を探しています。
私は典型的な "リフレクション"ソリューションを見ましたが、これはまだAndroidでこれがまだ問題であると理解していませんか?なぜ人々はこの作品を作るために反射を使用するのですか?これを修正するためにAndroidにバグを報告することはできますか?
これらのUUIDが標準であれば、どのアプリもそれらに接続して対話できる必要があります。なぜこれが問題なのですが、なぜこの例外が発生しますか?
ありがとうございます。
UPDATEだから、何らかの理由でAndroidシステムのオブジェクトプッシュが仕事を始めました。私は実際に私のアプリを介して接続しようとしたが、それは動作していませんでした。その後、私は連絡先アプリに行って、魔法のように働いた連絡先を共有しようとしました。それから、私は私のアプリに戻ってきました、そして、今それは働きます...うわー。それは非常に奇妙で、これには説明が必要です。
あなたは正しい権限を設定していますか? http://developer.android.com/guide/topics/connectivity/bluetooth.html#Permissions – Lars
@Larsもちろん、彼はそうしました。 dnkoutso:ソケットはどのくらい開いていますか?あなたは再ペアリングを試みることができますか、それはペアリングしてからもう一度ペアリングしてください。 Btw、それは2層ですか? – nullpotent
@ccthedral 2ティアはどういう意味ですか?私はしばしば両方のデバイスで実際の設定アプリに入り、ペアリングを削除します。一旦私が 'socket.connect()'をもう一度呼び出すと、ペアリングのダイアログとパスキーの入力を促すメッセージが表示されます。残念ながら、「Connection Refused」IOExceptionが発生した直後です。 – dnkoutso