Xamarin.android 如何使用Firebase通知。我能';是否在收到通知的情况下打开显示设备?

Xamarin.android 如何使用Firebase通知。我能';是否在收到通知的情况下打开显示设备?,xamarin.android,Xamarin.android,我按照Microsoft的指示发送Firebase通知。但当android设备收到通知时,屏幕不会亮起。我尝试连接WakeLock以打开显示器,但不起作用? 所有方法都在OnMessageReceived函数中 var wakeLock = powerManager.NewWakeLock(WakeLockFlags.ScreenDim | WakeLockFlags.AcquireCausesWakeup, "Demo");

我按照Microsoft的指示发送Firebase通知。但当android设备收到通知时,屏幕不会亮起。我尝试连接WakeLock以打开显示器,但不起作用? 所有方法都在OnMessageReceived函数中

var wakeLock = powerManager.NewWakeLock(WakeLockFlags.ScreenDim | 
                            WakeLockFlags.AcquireCausesWakeup, "Demo");
            wakeLock.Acquire(2 * 1000);
//////Send Notification here

wakeLock.Release();

你可以用这个方法,用电源管理器打开屏幕灯

private List<WakeLock> TurnDeviceLightOn(Context context)
    {
        PowerManager pm = (PowerManager)context.GetSystemService(Context.PowerService);
        bool isScreenOn = pm.IsInteractive;
        if (!isScreenOn)
        {
            WakeLock wl = pm.NewWakeLock(WakeLockFlags.Full | WakeLockFlags.AcquireCausesWakeup | WakeLockFlags.OnAfterRelease, "myLock");
            wl.Acquire(10000);
            WakeLock wl_cpu = pm.NewWakeLock(WakeLockFlags.Partial, "myCpuLock");
            wl_cpu.Acquire(10000);
            return new List<WakeLock>() { wl, wl_cpu };
        }
        return null;
    }
专用列表TurnDeviceLightOn(上下文)
{
PowerManager pm=(PowerManager)context.GetSystemService(context.PowerService);
bool isScreenOn=pm.IsInteractive;
如果(!IsCreenon)
{
WakeLock wl=pm.NewWakeLock(WakeLockFlags.Full | WakeLockFlags.AcquireCauseWakeUp | WakeLockFlags.OnAfterRelease,“myLock”);
wl.收购(10000);
WakeLock wl_cpu=pm.NewWakeLock(WakeLockFlags.Partial,“myCpuLock”);
wl_cpu.Acquire(10000);
返回新列表(){wl,wl_cpu};
}
返回null;
}

此方法返回可在稍后时间释放的唤醒锁

根据您的描述,您的代码可以在设备处于睡眠状态时打开屏幕,但对于Firebase通知,您应该知道:

只有当应用程序位于前台时,通知消息才会传递到onMessageReceived回调


如果您的应用程序处于后台或已关闭,则通知中心会显示一条通知消息,该消息中的任何数据都会传递给用户点击通知后启动的intent。因此不会触发onMessageReceived事件。如果在此事件中添加代码,我认为它不起作用。

I使用FirebaseMessagingService。如何在方法中定义上下文?“我的FirebaseMessagingService:FirebaseMessagingService”嗯,是的,我知道你可以在那里使用它?谢谢。我用了你的方法。调试时打开显示,但运行实际应用程序时不打开显示。嗯,您的意思是在调试模式下,它在发布版本中工作,但不工作?是的。我也不明白为什么发布构建应用程序没有在设备androidI want中打开显示当设备收到通知时,设备的屏幕正在休眠,它将点亮。