功能需求:如微信视频通话一样,在锁屏、灭屏状态下点亮屏幕,弹出界面
1:下列代码在服务和活动中都可以使用,只能点亮屏幕,部分没有密码的手机可以直接打开锁屏
```java
private static PowerManager mPowerManager;
private static PowerManager.WakeLock mWakeLock;
//点亮屏幕
@SuppressLint("InvalidWakeLockTag")
private void wakeLock(){
Log.i(TAG, "wakeLock:点亮屏幕30秒");
//亮屏逻辑代码
if (mPowerManager == null) {
mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
}
if (mWakeLock == null) {
mWakeLock = mPowerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG");
}
boolean screenOn = mPowerManager.isScreenOn();
if (!screenOn) {
//屏幕会持续点亮
mWakeLock.acquire(30*1000L );
//释放锁,以便10分钟后熄屏
mWakeLock.release();
}
}
2:光点亮屏幕,不弹出界面也无法实现需求,可以在活动中onCreate加入以下代码(只能在活动中,无法在服务中):
```java
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED //锁屏显⽰
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD //解锁
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON //保持屏幕长亮
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); //打开屏幕
3:弹出界面只能在活动中,但是一般后台运行都是在service中的,这样就可能需要在service中启动Activity:
Intent dialogIntent = new Intent(getApplication(), Activity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(dialogIntent);



