Android奇怪的跨设备行为

时间:2013-07-08 09:42:28

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

我有三个Android设备,三星Galaxy Note 10,HTC Desire C和Sony Xperia E.我也有一个服务,可以监听这些设备上的特定TCP端口。 WIFI策略在我的所有设备中都设置为“Always on”,我的服务也获取了WIFI_MODE_FULL和PARTIAL_WAKE_LOCK,因此CPU和WIFI始终存在。一段时间后,当我想从服务器连接到这些设备时,会发生一些不好的事情。

  • 三星Galaxy Note设备始终表现正常。
  • HTC Desire无法访问
  • 索尼设备也无法访问

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

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

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

但为什么ping时间是这样的?即使屏幕打开?我也知道,即使你持有唤醒锁,屏幕熄灭时CPU时钟也会减少。这会导致处理TCP连接的服务代码出现问题吗?

1 个答案:

答案 0 :(得分:1)

制造商希望能够吹嘘电池续航时间最长。为此,他们将剃除现有功能到他们的骨头,以实现电池寿命。

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

希望你的问题不完全是修辞,你真的想要一个答案。