最近项目做得是聊天交友类的应用,需求上需要在手机息屏后,接到视频时唤醒屏幕,并直接显示视频的页面。
这里记录下具体的写法:
1:息屏唤醒
唤醒屏幕这块使用的PowerManager对象:
public void wake (){
//获取电源管理器对象
PowerManager pm=(PowerManager) getSystemService(Context.POWER_SERVICE);
//获取PowerManager.WakeLock对象
@SuppressLint("InvalidWakeLockTag")
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.SCREEN_DIM_WAKE_LOCK,"bright");
//点亮屏幕
wl.acquire();
//释放
wl.release();
Log.e("xxx","wake");
}
另外别忘了添加权限:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
2:覆盖息屏页面
在需要跳转的activity中添加:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
记得添加在super之前。。
这样该activity就会在锁屏页面的上面显示。
比如我们收到语音消息的推送时,首先调用wake()方法;
然后跳转activity即可。