Samsung Galaxy Note 10、HTC Desire C、Sony Xperia E の 3 つの Android デバイスがあります。さらに、これらのデバイスの特定の TCP ポートでリッスンするサービスがあります。すべてのデバイスで WIFI ポリシーが「常時オン」に設定されています。私のサービスは WIFI_MODE_FULL と PARTIAL_WAKE_LOCK を取得するので、CPU と WIFI は常にそこにあります。しばらくして、サーバーからこれらのデバイスに接続しようとすると、問題が発生します。
- Samsung Galaxy Note デバイスは常に正しく動作します
- HTC Desire が到達不能になる
- ソニーが到達不能になる
これらのデバイスに ping を実行して、存在するかどうかを確認しました。結果は次のとおりです。
- Samsung デバイスは常に ping 要求に即座に正常に応答します
- HTC や Sony のデバイスは、到達できない場合があり、応答する場合もあります。ただし、画面がオンの場合でも非常に長い遅延で応答します (ping の時間列は約 5000 ミリ秒になる場合があります)。
WIFI ポリシーにはいくつかの問題があることはわかっています。
- https://code.google.com/p/android/issues/detail?id=9781
- https://code.google.com/p/android/issues/detail?id=6611
画面がping時間になっているのに、なぜこのようになっているのですか? さらに、ウェイクロックを保持していても、画面が消えると CPU クロックが低下することがわかっています。この動作により、TCP 接続を処理するサービス コードで問題が発生する可能性はありますか?