Android 如何禁止螢幕滅屏
阿新 • • 發佈:2019-01-27
不積跬步無以至千里
現在在做鎖屏的需求,在鎖屏上新加一個按鈕,但是要求是當按下這個按鈕的時候,是不允許被滅屏的操作,但是目前按下按鈕,無其他操作,螢幕一會會滅屏,因此需要按下按鈕禁止滅屏。
方法一:
通過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的方式。