2011-12-19 6 views
0

私はデバイス上でAndroidアプリケーションを実行すると、フォアグラウンドまたはバックグラウンドで動作するか、WiFi接続が失われないようにするために、私はWiFiManagerを取得し、サービスのonCreate()メソッドでロックを取得し、onDestroyメソッドで解放していることを確認してください。しかし、デバイスがスリープモードになるとWiFiをオンにする問題に直面するため、デバイスがスリープモードになってもWiFiをオンにする方法はありません。 デバイスをスリープモードにする必要がありますが、無線LAN接続は常にオンにする必要があるため、アプリケーションが常に実行されるため、デバイスをスリープ状態にするロックを取得できません。デバイスがスリープモードになったときにWiFiロックが機能しない

この問題を解決するにはどうすればよいですか、いくつかのサンプルコードも教えてください。

よろしく、 Piks

答えて

1

は、本サービスを使用してみてください。 Wi-Fi接続コードをサービスに挿入するだけで、これはバックグラウンドで永遠に実行されます。

+0

私は、サービス内の無線LANのコードを使用していますが、それでもデバイスがスリープモードになったとき、WiFi接続を使用すると、無線LANを使用する方法にはいくつかのサンプルコードを共有してください可能性がlost.Soを取得しますサービス内の接続。 – piks

+1

はい、あなたはwifiの下で、seettingsに行く必要がありますし、メニューボタンを押してください。今すぐ高度なメニューがポップアップし、あなたのWiFiスリープポリシーを決して設定しないでください。デフォルトはスリープに設定されていますので、これを変更してください。 –

+0

さて、私は、WiFiの設定をプログラムでオーバーライドできないことを理解しています。これらのシナリオを実行するには、デバイスの設定を変更する必要があります。 – piks

0

多分これが役立ちます。..

private void setNeverSleepPolicy() { 
    try { 
     ContentResolver cr = getContentResolver(); 
     if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN) { 
      int set = android.provider.Settings.System.WIFI_SLEEP_POLICY_NEVER; 
      android.provider.Settings.System.putInt(cr, android.provider.Settings.System.WIFI_SLEEP_POLICY, set); 
     } else { 
      int set = android.provider.Settings.Global.WIFI_SLEEP_POLICY_NEVER; 
      android.provider.Settings.System.putInt(cr, android.provider.Settings.Global.WIFI_SLEEP_POLICY, set); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
}