0

我有一个应用程序(活动和服务),它可以与单独的设备建立连接,并通过 spp 蓝牙从其上提取数据。

它需要每天执行一次。

但是,电话(服务器)可以与设备(客户端)重新建立连接的次数似乎是有限的。

在 LogCat 中,我看到了这个错误:BluetoothEventLoop.ccp

onCreateDeviceResult: D.Bus error: org.freedesktop.DBus.Error.LimitsExceeded(已达到每个连接的最大待处理回复数)

onCreateDeviceResult 的 BluetoothEventLoop 结果:-1

我正在考虑以编程方式重新启动手机,但不想这样做?

你有任何想法如何克服这个问题。

理想情况下,手机将作为集线器运行数周,永久连接到电源。我正在运行 Android 2.3.7。

4

1 回答 1

0

您是否使用此方法在连接线程中创建套接字?

tmp = device.createRfcommSocketToServiceRecord(MY_UUID);

我在 2.3.6 上遇到了同样的错误,并使用反射方法修复了它。我将上面的代码替换为:

Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
tmp = (BluetoothSocket) m.invoke(device, 1);

我使用了与其他问题相同的解决方案: Service discovery failed exception using Bluetooth on Android

于 2013-07-10T00:19:54.013 回答