屏幕常亮与睡眠权限

今天作视频播放类,须要保持屏幕常亮。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" />
相关文章
相关标签/搜索