我的Android应用通过桌面应用通过蓝牙接收串行通信。我无法控制该桌面应用程序在做什么。
使用Google BluetoothChat示例代码(https://github.com/googlesamples/android-BluetoothChat)。我设法使其正常工作,并且在某种程度上,我可以简单地将字节放入我的android应用中并写入文件。
但是,代码功能类似于
1-Android收听
2-PC发送数据,Android接受连接读取数据并写入文件
3-阅读时,Android遇到异常(客户端关闭连接?)并关闭连接
4-回到第一,并听接下来的几个字节
发生了什么事。对于正常的几个字节,从PC发送。有用。但是,当我发送许多字节(大约3KB至6KB)时,PC应用程序将在成功发送1次后冻结(即Android应用程序可以接受来自PC的第一个6kb发送操作,但是在第二次按send之后,Android应用程序会收到但PC应用程序将崩溃)。
我有两种情况
A。 android app第一次接收数据后。我关闭了PC应用程序,而我在android应用程序中的代码将收到一个异常,指出连接已关闭。之后,我可以重新启动PC应用程序并再次成功发送。我可以重复很多次,它将起作用。
B。 android app第一次接收数据后。我没有关闭PC应用程序并尝试第二次发送。 PC应用程序将崩溃!
在PC /桌面应用程序上,我什么都控制不了。因此,请勿提出任何涉及改变桌面应用程序操作或发送数据方式的建议。
我知道PC应用程序正在运行。看来,如果发送了许多字节,Android不会收到异常信号来表明连接已关闭。这是一个难题。
请参考我之前的问题,因为在很多方面它都与此相似!
How do I dump serial communication as file through Android bluetooth serial RFCOMM