1. 程式人生 > >Android 如何禁止螢幕滅屏

Android 如何禁止螢幕滅屏

不積跬步無以至千里

現在在做鎖屏的需求,在鎖屏上新加一個按鈕,但是要求是當按下這個按鈕的時候,是不允許被滅屏的操作,但是目前按下按鈕,無其他操作,螢幕一會會滅屏,因此需要按下按鈕禁止滅屏。

方法一:

通過WakeLock,休眠鎖控制如下方法

1、建立物件

PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, this.getClass().getCanonicalName());

2、獲取休眠鎖

mWakeLock.acquire();

3、釋放休眠鎖

if(mWakeLock != null&&mWakeLock.isHeld()) {
        mWakeLock.release();
    }

4、註冊許可權

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

方法二:

如果你是Activity的顯示模式,可以通過設定Window的屬性,來控制螢幕的亮滅

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, 
    WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

*但是需要注意的是設定這句程式碼一定要放到setContentView()之前才有效果,因為你設定的屬性,是在setContentView的方法中去實現的效果。

方法三:

View設定方法,來動態控制是否保持螢幕常亮與否

設定屬性到佈局的xml中

android:KeepScreenOn="true"

動態設定是否常亮

View.setKeepScreenOn(true);
View.setKeepScreenOn(false);

我在鎖屏中處理是通過方法三,因為鎖屏上的介面是通過Window+View的方式。