2

2 つの Android デバイス間で安全でない Bluetooth ソケット接続を確立しようとしています。私は両端でソフトウェアを制御します。一方の端はlistenUsingInsecureRfcommWithServiceRecord接続をリッスンするために使用し、もう一方の端はcreateInsecureRfcommSocketToServiceRecord接続に使用します。これは機能します。時々。

「時々」は私の問題です。試行の約 20% で失敗し、次の例外がスローされます。

java.io.IOException: Service discovery failed
    at android.bluetooth.BluetoothSocket$SdpHelper.doSdp(BluetoothSocket.java:403)
    at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:213)
    at com.example.bluetoothpoke.MainActivity$1.onClick(MainActivity.java:34)

両方のデバイスが起動しており、画面がオンになっています。デバイス間の距離は約 1m です (10cm と 3m は違いはありません)。どちらのデバイスも検出を実行していません。両方のデバイスが検出可能です (両方を検出不能にしても何も変わりません)。

無線インターフェースなので正常であると仮定して、失敗した場合は再試行する必要がありますか、それとも何かできることはありますか? 私が非常に快適な距離にいることを考えると、より確実に機能するはずではありませんか?

注: 同様の質問がたくさん見つかりましたが、見つかったのは、「まったく機能しない」、Android 以外のデバイスに接続する、またはその両方に関するものでした。

4

0 に答える 0