私は、ボタンを押しても常に動作する必要があるAndroid(バージョン1.5)アプリケーションを持っています。したがって、Button
が押されたとき、私は電話機をオンのままにして、画面やCPUがタイムアウトしないようにしたいと思います。アプリケーション/画面タイムアウトの防止Android
別のButton
が押されたとき、私は電話機が通常の状態に戻ってタイムアウトになるようにしたいと思います。
私は、ボタンを押しても常に動作する必要があるAndroid(バージョン1.5)アプリケーションを持っています。したがって、Button
が押されたとき、私は電話機をオンのままにして、画面やCPUがタイムアウトしないようにしたいと思います。アプリケーション/画面タイムアウトの防止Android
別のButton
が押されたとき、私は電話機が通常の状態に戻ってタイムアウトになるようにしたいと思います。
更新:Steve Pomeroyさんが提案したように、thisの方が良い方法でしょう。ここで
<uses-permission android:name="android.permission.WAKE_LOCK" />
あなたはAQUIREどのようにして、WakeLock
リリース:
次の許可が必要WakeLock
を使用することができ、あなたの要件に応じて
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
wl.acquire();
// wake locked...
wl.release();
をあなたはあるかもしれません異なるタイプのWakeLock
を使用することができます。
私はその解決策を考えましたが、ローカルで作成されたウェイクロックを解除することしかできませんそれはリリースされる必要がある「オフ」ボタンではありません。アイデア? – Tom
サービスを作成します。サービスのonCreate()では、プライベートデータメンバーで保持されているWakeLockを取得します。サービスのonDestroy()で、WakeLockを解放します。このアクティビティでは、画面/ CPUをオンにする必要があるときは、startService()を呼び出します。いつか後で、画面/ CPUを使い続ける必要がなくなったら、stopService()を呼び出します。今、WakeLockは、あなたの活動に何が起こったとしても、サービスが実行されている限り開催されます。さらに、バッテリーの寿命が短くなると、サービスはバッテリーイベントを監視し、おそらくWakeLockをリリースする可能性があります。 – CommonsWare
私は.release法上の "WLは解決できない" 得続ける: パブリッククラスWakeLockServiceは、サービス{ \t @Override \t公共IBinder [OnBind]の(意図のarg0){ \t \t // TODO自動生成されたメソッドを拡張スタブ \t \t return null; \t} \t \t公共ボイドのonCreate(){ \t \t PowerManagerのPM =(PowerManager)getSystemService(Context.POWER_SERVICE)。 \t \t PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK、 "My Tag"); \t \t wl.acquire(); \t} \t \t公共ボイドonDestroy(){ \t \t wl.release()。 \t} } – Tom
代わりwakelockを使用して、あなたは解決策がここで提案を検討する必要があります。使用する方がはるかに簡単であると誤ってユーザーのバッテリーを無駄にする可能性を持っていないForce Screen On
。
ああ、とてもクールです。私はそれを私の答えに加えました。ありがとう! –
[Force Screen On]の複製が可能です(http://stackoverflow.com/questions/2131948/force-screen-on) –