2

フォアグラウンド サービスを実行する Android アプリがあり、そのサービスが実行されている間、ユーザーに画面をオンにしておくオプションを提供したいと考えています。

設定の設定にチェックボックスの設定を追加しました。true の場合、画面をオンのままにしたいのですが、デフォルトでオフに設定します。それは私のユーザーが求めていたものです。現在、私は設定をオンにしていますが、サービスを実行すると、画面がまだここで閉じられます。

グローバル変数

private static final String PREFS_DEVICE = "DeviceInfo";

コードと if ステートメント

SharedPreferences settings = getSharedPreferences(PREFS_DEVICE, 0);
            if(settings.getBoolean("screenPref", false)) {
                final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
                this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
                this.mWakeLock.acquire();
            }

そして、これをマニフェストに追加しました

<uses-permission android:name="android.permission.WAKE_LOCK" />

私が間違っていることはありますか?サービスからこれを行う別の方法はありますか、それともサービスからは不可能ですか (そうでないことを願っています)。

4

4 に答える 4

4

フラグ FLAG_KEEP_SCREEN_ON を使用できます

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

そして、あなたが続けたくないとき

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
于 2015-01-13T03:22:55.590 に答える
3

これを試して:

mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,         
                            "");    
mWakeLock.acquire();
于 2011-09-08T04:27:20.927 に答える
-1

MarkMurphyがWakefulIntentServiceで提供するパターンに従います。そしてあなたは彼の本の中で 非常に良いものの説明を見つけることができます

于 2011-09-08T03:41:06.743 に答える