2

Android Phone (Samsung Galaxy) が、ペアリングされたデバイスである PC (サーバー) への 2 つ (またはそれ以上) の接続を開く必要がある場所で立ち往生しています。この目的のために、UUID : 00001101-0000-1000-8000-00805F9B34FB とチャネル 2 を使用して PC で SDP サーバーを起動します。最初の接続後、PC で SDP サービスを登録解除し、チャネル 3 (および同じ UUID) で再度登録します。 2番目のBluetooth接続を確立するために、Androidフォンがそれに「接続」することを期待しています。2 つ目は失敗します。

私が理解した問題は、ペアリングのために、「BluetoothSocket.connect」のデバイスのチャネル番号とUUIDがキャッシュから提供され、更新されていないため、サーバー側のチャネル番号でSDPが変更されることですチャネル 2 (古いチャネル) に接続しようとしているため、ここには表示されません。

この問題の回避策 (多くのイライラする試みの後に発見された) は、getRemoteServiceChannel() および fetchRemoteUuids() に戻る前に updateDeviceServiceChannelCache(addr) を導入して android.server.BluetoothService.java ファイルを変更し、更新することです。各関数呼び出しのチャネル番号。

上記の解決策は間違っている可能性があります。その点はご容赦ください。それが正しい場合は、さらなる変更と、この変更をEclipseで永続的にする方法を提案してください。または、他の場合(間違った解決策)、これを行う正しい方法を提案してください。

注:私はAndroid 2.3.5を使用しており、デバイスからのリクエストは実際にはPCに転送するブラウザからのものです。私はそれらを別々のチャンネルにしたい。

ありがとう。

4

0 に答える 0