屏幕常亮與睡眠權限

今天作視頻播放類,須要保持屏幕常亮。android

因此作一個記錄,寫下過程ide

首先,設置工具類工具

public class Locker {

    private static final String TAG = Locker.class.getName();
    private Context mContext;
    private PowerManager.WakeLock   mWakeLock;

    public Locker(Context context){
        mContext = context;
        mWakeLock= ((PowerManager)mContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
    }

    public void lock(){
        if(null != mWakeLock &&  !mWakeLock.isHeld()){
            mWakeLock.setReferenceCounted(false);
            mWakeLock.acquire();
        }
    }

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

而後在須要常亮的地方調用ui

通常就是視頻控件初始化的地方視頻

mLocker = new Locker(getApplicationContext());
mLocker.lock();

最後還須要在生命週期裏生命週期

@Override
protected void onDestroy() {
    super.onDestroy();
    if (mLocker != null){
        mLocker.unlock();
    }
}

最重要的是不要忘記添加權限get

<uses-permission android:name="android.permission.WAKE_LOCK" />
相關文章
相關標籤/搜索