设备上收到Android FCM通知。但显示无法打开

时间:2017-02-23 11:08:41

标签: android notifications display

我正在使用FCM通知开发Android应用。当应用程序处于后台或前台时,我会正确收到通知;它的声音和声音振动,点击通知启动应用程序。一切都很合适。但是当设备被锁定并且显示器关闭时,设备会在接收到通知时振动并发出声音。但它没有唤醒(屏幕没有打开)。只有按下按键后设备才会唤醒,即使在锁定的屏幕上我也能看到通知。

我有两个问题,

  
      
  1. 如何打开显示屏?

  2.   
  3. 如何在锁定时间屏幕中显示应用程序图标,就像锁定屏幕中的whatsapp徽标一样?

  4.   

谢谢,Velu

1 个答案:

答案 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