2

我正在尝试在两个 Android 设备之间建立不安全的蓝牙套接字连接。我控制两端的软件。一端用于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(10 cm 和 3m 没有区别)。两个设备都没有执行发现。两个设备都是可发现的(使两者都不可发现也不会改变任何东西)。

由于无线接口,我是否必须假设它是正常的,然后在失败时重试,还是我能做些什么?鉴于我处于非常舒适的距离,它不应该更可靠地工作吗?

注意:我发现了很多类似的问题,但我发现的问题要么是关于“根本不起作用”,要么是连接到非 Android 设备,或者两者兼而有之。

4

0 回答 0