14

如果在 1 分钟不活动后没有自动完成,我可以在 android 中以编程方式将屏幕设置为关闭吗?

这可以在android中以编程方式完成吗?

我发现了这个线程: Android:如何以编程方式打开和关闭屏幕?

以编程方式打开和关闭屏幕在某些设备上不起作用

但1分钟后没有计时器。

4

1 回答 1

21

是的,在这种情况下最好使用的方法是以编程方式设置屏幕超时。

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 1000);

1000 以毫秒为单位,表示 1 秒,您可以根据需要将其替换为任何值。

需要的许可:

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

更新

它将覆盖手机系统值(设置/显示/睡眠),因此您可能需要在完成后恢复当前设置:

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);
    }
}
于 2012-12-04T06:01:41.397 回答