今天做视频播放类,需要保持屏幕常亮。
所以做一个记录,写下过程
首先,设置工具类
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" />