android 设置系统屏幕背光时间或锁屏间隔时间
/**
* 获得锁屏时间 毫秒
*/
private int getScreenOffTime(){
int screenOffTime=0;
try{
screenOffTime = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
}
catch (Exception localException){
}
return screenOffTime;
}
/**
* 设置背光时间 毫秒
*/
private void setScreenOffTime(int paramInt){
try{
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, paramInt);
}catch (Exception localException){
localException.printStackTrace();
}
}
常用技巧
应用开启时间保持屏幕常亮
1、创建serive监听系统灭屏广播,如:ScreenService
public class ScreenService extends Service {
String tag = "060_ScreenService";
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.e(tag, "onCreate");
/* 注册屏幕唤醒时的广播 */
IntentFilter mScreenOnFilter = new IntentFilter("android.intent.action.SCREEN_ON");
ScreenService.this.registerReceiver(mScreenOReceiver, mScreenOnFilter);
/* 注册机器锁屏时的广播 */
IntentFilter mScreenOffFilter = new IntentFilter("android.intent.action.SCREEN_OFF");
ScreenService.this.registerReceiver(mScreenOReceiver, mScreenOffFilter);
}
public void onDestroy() {
super.onDestroy();
ScreenService.this.unregisterReceiver(mScreenOReceiver);
}
/**
* 锁屏的管理类叫KeyguardManager,
* 通过调用其内部类KeyguardLockmKeyguardLock的对象的disableKeyguard方法可以取消系统锁屏,
* newKeyguardLock的参数用于标识是谁隐藏了系统锁屏
*/
private BroadcastReceiver mScreenOReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("android.intent.action.SCREEN_ON")) {
Log.e(tag, "—— SCREEN_ON ——");
} else if (action.equals("android.intent.action.SCREEN_OFF")) {
Log.e(tag, "—— SCREEN_OFF ——");
screenOn();
}
}
};
/**
* 亮屏
*/
public void screenOn() {
// turn on screen
PowerManager mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
PowerManager.WakeLock mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
mWakeLock.acquire();
mWakeLock.release();
}
/**
* 灭屏
*/
private void screenOff(){
DevicePolicyManager policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
// ComponentName adminReceiver = new ComponentName(AppIdleActivity.this, ScreenOffAdminReceiver.class);
// boolean admin = policyManager.isAdminActive(adminReceiver);
// if (admin) {
// policyManager.lockNow();
// } else {
// Toast.makeText(this,"没有设备管理权限",
// Toast.LENGTH_LONG).show();
// }
}
}
2、在配置文件中增加系统权限
+<uses-permission android:name="android.permission.WAKE_LOCK" />
3、在Application全局启动该service,全局监听。
//启动应用级的service
startService(new Intent(getApplicationContext(), ScreenService.class));