它在Android上。我有一个发送/接收数据包的聊天工具。在客户端,我解析数据包并向用户显示消息。传统的聊天工具。
问题是该工具在WiFi,Edge和3G上的其他设备上运行良好,除了HTC One。在HSDPA(3G)上,我们注意到客户端无法像往常一样接收数据包。在我们重置套接字之前它一直停留在那里。
我调试并发现DataInputStream.read()方法(在while循环中监听传入的数据)被卡在那里。我将Android源代码更深入,但直到Oracle的java.libcore软件包。
我想问题是因为HTC One的睡眠模式。但在前台,应用程序也无法接收消息,直到我们打开一个新的套接字(长时间超时,大约4分钟,这对于聊天工具来说太长了。)
在研究过程中,我尝试为HTC安装SmartSync Disabler,情况似乎更好。当我反编译工具时,它只设置2个参数:sleep_mode_mode为off,data_on_wifi为off,这意味着在睡眠模式下,SmartSync不会断开wifi。
我的问题是,有没有人在HTC One之前遇到过这种情况?可能是什么原因?
非常感谢!
答案 0 :(得分:0)
我们遇到了同样的问题。
尝试使用此方法
void setReceiveBufferSize(int size)
void setSendBufferSize(int size)
即。把它缩小。