屏幕常亮与睡眠权限

今天做视频播放类,需要保持屏幕常亮。

所以做一个记录,写下过程

首先,设置工具类

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();
        }
    }
}

然后在需要常亮的地方调用

一般就是视频控件初始化的地方

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

最后还需要在生命周期里

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

最重要的是不要忘记添加权限

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

猜你喜欢

转载自my.oschina.net/u/3698786/blog/2872403
今日推荐