Android 奇怪的跨设备行为

标签 android wifi ping android-wifi android-wake-lock

我有三台安卓设备:一台三星 Galaxy Note 10、一台 HTC Desire C 和一台索尼 Xperia E。此外,我有一个服务可以监听这些设备上的特定 TCP 端口。我所有设备的 WIFI 策略都设置为“始终开启”。我的服务获取一个 WIFI_MODE_FULL 和一个 PARTIAL_WAKE_LOCK 所以 CPU 和 WIFI 总是在那里。一段时间后,当我想从我的服务器连接到这些设备时,发生了一些不好的事情。

  • Samsung Galaxy Note 设备始终正常运行
  • HTC Desire 变得无法访问
  • 无法访问索尼

我 Ping 了这些设备以查看它们是否存在。结果是:

  • Samsung 设备始终立即正常响应 ping 请求
  • HTC 和 Sony 设备有时无法访问,有时会响应。但是,即使屏幕打开,他们也会有很长的响应延迟(ping 的时间列有时约为 5000 毫秒)

我知道 WIFI 政策存在一些问题:

为什么亮屏时ping时间还是这样?此外,我知道当屏幕关闭时 CPU 时钟会降低,即使您持有唤醒锁也是如此。此行为会导致处理 TCP 连接的服务代码出现问题吗?

最佳答案

制造商希望能够吹嘘拥有最长的电池生命周期。为此,他们将精简现有功能以延长电池生命周期。

是的,它可能会导致问题,而且确实会导致问题,但这是您应该进行防御性编程的众多原因之一。换句话说,确保您的应用程序已准备好处理丢失的数据包和可能的更长延迟。

希望您的问题不完全是口头上的,您实际上想要一个答案。

关于Android 奇怪的跨设备行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17523493/

相关文章:

linux - 如何使用 shell 脚本 ping 一个文件中的多个 IP,并仅打印另一个文件中的在线 IP?

windows - 如何将 ping 命令用作批处理文件中用作中断条件的变量?

android - 连接mySQL数据库与android

java - Android EditText 符号必须保持在初始位置

Android wifi脚本问题

android - Android 上的 GPS 和 WiFi 热点冲突

java - Android 中 SQLite 数据库的安全性

android - 确定 Android 中安装的应用程序使用的权限列表

iphone - iOS - WiFi 地理围栏关闭

c# - 为什么我得到 PingException?