はい、この場合に最もよく使用される方法は、代わりにプログラムで画面タイムアウトを設定することです。
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 1000);
1000 はミリ秒単位で、1 秒を意味します。必要に応じて任意の値に置き換えることができます。
必要な許可:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
アップデート
電話システムの値 (Settings/Display/Sleep) が上書きされるため、終了後に現在の設定を復元する必要がある場合があります。
private static final int SCREEN_OFF_TIME_OUT = 13000;
private int mSystemScreenOffTimeOut;
private void setScreenOffTimeOut() {
try {
mSystemScreenOffTimeOut = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, SCREEN_OFF_TIME_OUT);
} catch (Exception e) {
Utils.handleException(e);
}
}
private void restoreScreenOffTimeOut() {
if (mSystemScreenOffTimeOut == 0) return;
try {
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, mSystemScreenOffTimeOut);
} catch (Exception e) {
Utils.handleException(e);
}
}