Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓6(棉花糖)无线网络&x2B;蓝牙有时会导致SocketTimeoutException_Android_Bluetooth_Android 6.0 Marshmallow_Ibeacon Android_Socket Timeout Exception - Fatal编程技术网

Android 安卓6(棉花糖)无线网络&x2B;蓝牙有时会导致SocketTimeoutException

Android 安卓6(棉花糖)无线网络&x2B;蓝牙有时会导致SocketTimeoutException,android,bluetooth,android-6.0-marshmallow,ibeacon-android,socket-timeout-exception,Android,Bluetooth,Android 6.0 Marshmallow,Ibeacon Android,Socket Timeout Exception,我们的Android应用程序存在问题,当用户当前正在使用该应用程序时,该应用程序会使用蓝牙扫描信标。当加载不同的视图时,应用程序正在从API加载数据。有时,当继续单击视图时,一个请求失败(超时),并出现以下错误: java.net.SocketTimeoutException: failed to connect to www.examplehost.com/111.222.333.444 (port 80) after 15000ms

我们的Android应用程序存在问题,当用户当前正在使用该应用程序时,该应用程序会使用蓝牙扫描信标。当加载不同的视图时,应用程序正在从API加载数据。有时,当继续单击视图时,一个请求失败(超时),并出现以下错误:

java.net.SocketTimeoutException: failed to connect to www.examplehost.com/111.222.333.444 (port 80) after 15000ms
                                              at libcore.io.IoBridge.connectErrno(IoBridge.java:169)
                                              at libcore.io.IoBridge.connect(IoBridge.java:122)
                                              at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
                                              at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:452)
                                              at java.net.Socket.connect(Socket.java:884)
                                              at com.android.okhttp.internal.Platform.connectSocket(Platform.java:117)
                                              at com.android.okhttp.internal.http.SocketConnector.connectRawSocket(SocketConnector.java:434)
                                              at com.android.okhttp.internal.http.SocketConnector.connectCleartext(SocketConnector.java:105)
                                              at com.android.okhttp.Connection.connect(Connection.java:1331)
                                              at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:1410)
                                              at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128)
                                              at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:466)
                                              at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:447)
                                              at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353)
                                              at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:468)
                                              at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:410)
                                              at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:532)
(这是我们服务器的IP地址,替换为111.222.333.444)

这是一个超时(>15秒),而在此之前的请求相当快

我在其他设备上没有遇到过这个问题,只有在三星S6升级到Android 6.0.1时才会遇到。由于该应用程序位于前台,我不认为它可以是Doze或Standby(Android 6中新增),因为该应用程序正在被积极使用。但同样的问题可能发生在应用程序处于后台时(但很难测试)

  • 当关闭Wifi(因此设备使用4G网络)或蓝牙(或两者)时,问题不再出现
  • 在LG Nexus 5上(同样适用于Android 6.0.1),问题永远不会出现
  • 我们使用的信标库:(版本2.7)

有人知道我们应该在哪里寻找问题吗?提前感谢。

虽然这是我在S6上听到的第一个报告,这是其他设备(如Nexus 4、Nexus 7、Moto G和Moto X)上的一个常见问题。这些设备在WiFi和蓝牙无线电之间遇到干扰,共享相同的射频频段,在某些设备型号中共享芯片和天线。在Nexus4和MotoG上,问题非常严重,使用蓝牙扬声器时无法播放流媒体音乐。因此,这个问题并非特定于信标

没有已知的解决方法,但您可以检测设备型号,如果已知存在问题,提示用户关闭WiFi。或者甚至为用户做这件事(当然要有适当的通知)

如果知道早期Android版本的S6上是否存在同样的问题,那将是一件有趣的事情。如果是这样,这表明固件中可能存在修复,至少针对S6


全面披露:我是Android Beacon库开源项目的首席开发人员。

您是否使用setHostnameVerifier(新浏览器CompatHostNameVerifier())?如果是,请删除它,因为Android 6.0附带了一个新的主机名验证程序

谢谢你的回复。我们听说过干扰问题,但奇怪的是,从安卓6开始,它就开始成为一个问题。对于仍然使用安卓5的用户,我们看不到任何问题。希望三星能解决这个问题。你知道如何联系三星解决这个问题吗?对不起,我不知道三星有联系人。这是由三星设备的Android更新修复的。好听。为了其他看到这一点的人,你能报告版本号和修复此问题的Android版本吗?你知道出现问题的版本号和Android版本吗?