gpt4 book ai didi

Android 6 (Marshmallow) Wifi + Bluetooth 有时会导致 SocketTimeoutException

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:51 25 4
gpt4 key购买 nike

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

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 中的新功能),因为该应用程序正在被积极使用。但是app在后台的时候可能会出现同样的问题(但是很难测试)。

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

最佳答案

虽然这是我在 S6 上听到的第一份报告,这是 Nexus 4、Nexus 7、Moto G 和 Moto X 等其他设备上的常见问题。这些设备体验 < strong>WiFi 和蓝牙 radio 之间的干扰,它们共享相同的 radio 频段,并且在某些设备型号中共享芯片和天线。在 Nexus 4 和 Moto G 上,问题严重到无法在使用蓝牙扬声器的同时播放音乐。所以问题不是特定于信标。

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

如果 S6 和较早的 Android 版本存在同样的问题,那将是一件很有趣的事情。如果是这样,这表明至少对于 S6 来说,固件中的修复是可能的。

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

关于Android 6 (Marshmallow) Wifi + Bluetooth 有时会导致 SocketTimeoutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36313143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com