admin 管理员组

文章数量: 1184232


2024年3月22日发(作者:童程童美少儿编程)

Android屏幕禁止休眠的方法

实现这一功能的方法有两种,一种是在文件里面声明,一种是在代码里面修改

LayoutParams的标志位。具体如下:

1、在文件里面用user-permission声明。代码如下:

这种方法,在安装apk时,系统会提示安装人是否允许使用禁止休眠功

能。

2、在程序中用代码实现。代码如下:

getWindow().setFlags(_KEEP_SCREEN_ON,

_KEEP_SCREEN_ON); 把这段代码加在

setContentView()之前即可。

---------------------------------------

锁定屏幕对于移动终端来说是非常有必要的,但是对于机顶盒产品就没

有这个必要了。所以本文介绍一下怎样让Android设备永不锁屏。

Android系统的锁屏时间存放在Setting数据库中,字段为

_OFF_TIMEOUT。查看SettingsProvider源码,

查看如下文件的源码:

frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/

va

查看loadSystemSettings()函数的代码如下:

private void loadSystemSettings(SQLiteDatabase db) {

SQLiteStatement stmt = eStatement("INSERT OR IGNORE INTO system(name,value)"

+ " VALUES(?,?);");

Resources r = ources();

loadBooleanSetting(stmt, _SCREEN,

_dim_screen);

loadSetting(stmt, _ON_WHILE_PLUGGED_IN,

"1".equals(("")) ? 1 : 0);

loadIntegerSetting(stmt, _OFF_TIMEOUT,

_screen_off_timeout);

// Set default cdma emergency tone

loadSetting(stmt, NCY_TONE, 0);

// Set default cdma call auto retry

loadSetting(stmt, _AUTO_RETRY, 0);

// Set default cdma DTMF type

loadSetting(stmt, _TONE_TYPE_WHEN_DIALING, 0);

// Set default hearing aid

loadSetting(stmt, G_AID, 0);

// Set default tty mode

loadSetting(stmt, _MODE, 0);

loadBooleanSetting(stmt, NE_MODE_ON,

_airplane_mode_on);

loadStringSetting(stmt, NE_MODE_RADIOS,

_airplane_mode_radios);

loadStringSetting(stmt, NE_MODE_TOGGLEABLE_RADIOS,

ne_mode_toggleable_radios);

loadBooleanSetting(stmt, _TIME,

_auto_time); // Sync time to NITZ

loadIntegerSetting(stmt, _BRIGHTNESS,

_screen_brightness);

loadBooleanSetting(stmt, _BRIGHTNESS_MODE,

_screen_brightness_automatic_mode);

loadDefaultAnimationSettings(stmt);

loadBooleanSetting(stmt, ROMETER_ROTATION,

_accelerometer_rotation);

loadDefaultHapticSettings(stmt);

();

}

从代码中我们可以看出,假如_OFF_TIMEOUT

没有初始化的话(系统首次启动,这个字段肯定是没有初始化的),将

会利用资源中的_screen_off_timeout来初始化。我们为了让


本文标签: 代码 系统 安装 禁止 休眠