回答:
1つのオプションは、ウェイクロックを使用することです。ドキュメントの例:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
wl.acquire();
// screen and CPU will stay awake during this section
wl.release();
このページには、さまざまな種類のウェイクロックを説明する表もあります。
スリープ解除ロックを使用する場合は注意が必要です。release()それが終わったら(またはフォアグラウンドではなく)常にロックするようにしてください。そうしないと、アプリがバッテリーの消耗やCPUの使用に重大な影響を及ぼす可能性があります。
ドキュメントには、デバイスを起動状態に保つためのさまざまなアプローチと、いつ使用するかを説明する便利なページも含まれています。「デバイスがスリープ状態にならないようにする」が画面のみを指している(CPUをアクティブにしていない)場合、ウェイクロックはおそらく必要以上のものです。
このメソッドを使用するには、マニフェストにWAKE_LOCK権限が設定されていることも確認する必要があります。
あなただけの特定のスリープモードを防ぎたい場合はView、単に呼び出すsetKeepScreenOn(true)ことでView設定するかkeepScreenOnにプロパティをtrue。これにより、が画面View上にあるときに画面が消えることを防ぎます。これには特別な許可は必要ありません。
setKeepScreenOn(true)場合にのみ有効になることに注意してくださいView。
別の有効な解決策が見つかりました。次の行をアプリのonCreateイベントの下に追加します。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
私のサンプルCordovaプロジェクトは次のようになります。
package com.apps.demo;
import android.os.Bundle;
import android.view.WindowManager;
import org.apache.cordova.*;
public class ScanManActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
super.loadUrl("http://stackoverflow.com");
}
}
その後、私のアプリは開いている間はスリープ状態になりませんでした。回答がxSusに行くのをありがとう。
android:keepScreenOn="true" レイアウトXMLから取得するより良いオプションである可能性があります。
詳細:https : //developer.android.com/training/scheduling/wakelock.html
ルートシェル(adbシェルなど)から、次のようにロックできます。
echo mylockname >/sys/power/wake_lock
その後、あなたがそうするまで、デバイスは起きたままになります:
echo mylockname >/sys/power/wake_unlock
'mylockname'と同じ文字列を使用します。
これによって画面が黒くなるのを防ぐことはできませんが、CPUがスリープするのを防ぐことができます。
/ sys / power / wake_lockは、ユーザー無線(1001)とグループシステム(1000)、およびもちろんルートに対して読み取り/書き込みであることに注意してください。
参照はここにあります:http : //lwn.net/Articles/479841/
@eldarerathisが言ったことはすべての点で正しいです。ウェイクロックは、デバイスがスリープ状態にならないようにする正しい方法です。
私はあなたがする必要性をAPP WAHT知らないが、本当に重要であるあなたが必要なことを多くのため目を覚まし滞在する電話を強制していない、またはバッテリの寿命が非常に苦しむことになるように、あなたはどのように建築家にアプリ上で考えること。
イベントを起動して電話と(アプリ)をウェイクアップし、必要な操作を実行してから再びスリープ状態にする方法について、この本当に良い例を紹介AlarmManagerします:アラームマネージャー(ソース:commonsware.com)