只是想知道是否可以使用 Android 中的代码更改屏幕超时
问问题
47168 次
5 回答
50
做起来很简单。你应该从Android源代码中学习解决你的问题。
/**
* set screen off timeout
* @param screenOffTimeout int 0~6
*/
private void setTimeout(int screenOffTimeout) {
int time;
switch (screenOffTimeout) {
case 0:
time = 15000;
break;
case 1:
time = 30000;
break;
case 2:
time = 60000;
break;
case 3:
time = 120000;
break;
case 4:
time = 600000;
break;
case 5:
time = 1800000;
break;
default:
time = -1;
}
android.provider.Settings.System.putInt(getContentResolver(),
Settings.System.SCREEN_OFF_TIMEOUT, time);
}
于 2012-05-25T05:36:33.490 回答
13
更好的解决方案是执行以下操作之一(取决于您希望它是动态的还是静态的):
- 在布局(xml)中指定属性
android:keepScreenOn
(即始终无限期地防止屏幕超时), WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
创建活动时添加标志,或- 使用 a
WakeLock
控制屏幕应该打开多长时间(动态)
于 2012-10-16T00:51:24.550 回答
8
将屏幕超时设置为 -1 似乎并不能准确地完成所需的工作。
我发现将值设置为 Integer.MAX_VALUE 效果更好。
例如:
android.provider.Settings.System.putInt(内容, Settings.System.SCREEN_OFF_TIMEOUT, Integer.MAX_VALUE);
这似乎将最大超时设置为设备允许的最大值。
例如,如果导航到手机上的显示设置时,只允许您拥有 30 分钟的最大屏幕超时,则执行上述代码会将屏幕超时设置为 30 分钟。
于 2015-11-08T15:39:32.153 回答
5
如果有人需要将其设置为从不,这里是代码
Settings.System.putString(cr, Settings.System.SCREEN_OFF_TIMEOUT, "-1");
于 2012-05-25T07:13:46.010 回答
0
试试这个。只需将 3000 更改为您想要的任何屏幕输出时间。确保您提供更改系统设置权限。
try {
int mSystemScreenOffTimeOut = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, 3000);
} catch (Exception e) {
Toast.makeText(this, "Permission Error", Toast.LENGTH_SHORT).show();
}
于 2020-10-09T15:32:16.137 回答