1

バックグラウンドでパケットを送受信する必要があるアプリを開発しています。しかし、画面がオフになると、CPU とネットワークも無効になることがわかりました。そのため、Android Developers で、画面がオフになった場合でも CPU が動作するようにするには、ウェイク ロックと wifi ロックを使用する必要があることを発見しました。このソリューションは、LG Optimus One などの他のデバイスでは機能しますが、Samsung Galaxy Tab では機能しません。このデバイスでは、画面がオフになるとパケット (UDP) を受信できなくなり、魔法のように電源ボタンを押して画面を再度有効にすると、再起動してパケットを受信します。私のコードでは、次のように呼び出します。

powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_DIM_W AKE_LOCK, "TAG");

それから

wakeLock.acquire();

これは Samsung のバグだと思いますが、よくわかりません。もし誰かがヒントをくれたら、本当に感謝します。

PS プログラミングの助けが必要です...画面がシャットダウンしないように手動設定を変更すると、これが機能することは既にわかっています。しかし、私はアプリを開発していて、コードが必要です!!

4

2 に答える 2

0

また、高度な WIFI 設定を確認することもできます。[設定] - [WIFI 設定] で、メニュー キーを押して詳細アイコンをクリックし、WIFI スリープ ポリシーの値を確認します。オプションの 1 つは、「画面がオフになったとき」です。

于 2011-05-20T09:05:29.893 に答える
0

PARTIAL_WAKE_LOCKあなたのケースで使用する必要があります。

十分ではない理由SCREEN_DIM_WAKE_LOCKはわかりませんが (これを正当化するドキュメントが見つかりませんでした)、PARTIAL_WAKE_LOCK同様のシナリオでうまくいきました。

別のオプションとして、 を使用できますWifiLock。ただし、ネットワーク接続は Wi-Fi のみではなく、2G または 3G である可能性があるため、注意が必要です。そのため、実際に 3G/2G などを使用しているときに Wi-Fi ロックを保持しないでください。

于 2011-05-20T09:00:16.057 に答える