【发布时间】:2012-11-19 19:17:38
【问题描述】:
我有一个应用程序通过蓝牙通过 RFCOMM 与自定义设备通信。通信代码基于BluetoothTalk示例工程。它之前在 Galaxy S3、Galaxy S2、Galaxy Note 和 Nexus 7 上都可以正常运行。
最近 Nexus 7 升级到 Android 4.2 之后,出现如下问题:
-
当你第一次使用app建立连接时,即设备刚开机,app刚启动,没问题,可以正常获取数据。
李> 然后,如果您停止通信,并尝试重新启动,通信将失败并出现错误“java.io.IOException: bt socket closed, read return: -1”。从那时起,无论您尝试重新连接多少次,它总是失败。
让它再次工作的唯一方法是,如果你重新启动自定义设备和应用程序,然后尝试连接,通信就会正常。但是,一旦您停止并重新启动通信,它就会继续失败。
我借了一台装有 Android 4.2 的 Nexus 4,但问题仍然存在。
这真的很烦人,因为我们设备的主要价值在于依赖蓝牙 RFCOMM 应用程序。我仔细检查了 Android 4.2 中关于 BT 的文档,没有发现任何重大变化。我对自己的代码相当有信心,因为它适用于任何不运行 4.2 的 Android 设备
任何提示或建议将不胜感激。该设备需要在 12 月初进行演示,我们非常希望尽快解决这个问题。
编辑:现在 4.2.1 已经发布,但问题仍未解决。我们至少可以确认它是否正在工作并且很快就会修复吗?
【问题讨论】: