我正在使用FCM通知开发Android应用。当应用程序处于后台或前台时,我会正确收到通知;它的声音和声音振动,点击通知启动应用程序。一切都很合适。但是当设备被锁定并且显示器关闭时,设备会在接收到通知时振动并发出声音。但它没有唤醒(屏幕没有打开)。只有按下按键后设备才会唤醒,即使在锁定的屏幕上我也能看到通知。
我有两个问题,
如何打开显示屏?
- 醇>
如何在锁定时间屏幕中显示应用程序图标,就像锁定屏幕中的whatsapp徽标一样?
谢谢,Velu
答案 0 :(得分:3)
您可以创建一种方法来验证屏幕是打开还是关闭:
private static void wakeUpScreen() {
// Wake up screen
PowerManager powerManager = (PowerManager)BuyersApp.getContext().getSystemService(Context.POWER_SERVICE);
boolean isScreenOn;
if (Build.VERSION.SDK_INT >= 20) {
isScreenOn = powerManager.isInteractive();
} else {
isScreenOn = powerManager.isScreenOn();
}
if (!isScreenOn){
PowerManager.WakeLock wl = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK |PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.ON_AFTER_RELEASE,"MH24_SCREENLOCK");
wl.acquire(2000);
PowerManager.WakeLock wl_cpu = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MH24_SCREENLOCK");
wl_cpu.acquire(2000);
}
}
还记得在清单中添加权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
检查此answer