Xamarin Android通知 - 打开屏幕

时间:2017-05-30 07:30:57

标签: android xamarin xamarin.android

我正在尝试创建一个通知,当它发生时会打开屏幕(与通话/短信相同)

我有这个

            public void NotifyWithIntent(string title, string text, DateTime time, Type intentTarget) {
            int id = 0;
            var intent = new Intent(Application.Context, intentTarget);
            Android.App.Notification.Builder builder = new Android.App.Notification.Builder(Application.Context).SetContentTitle(title).SetContentText(text).SetSmallIcon(Resource.Drawable.icon2).SetAutoCancel(true).SetSound(RingtoneManager.GetDefaultUri(RingtoneType.Notification));

            NotificationManager notificationManager = Application.Context.GetSystemService(Context.NotificationService) as NotificationManager;
            Intent notificationIntent = new Intent(Application.Context, intent.Class);
            var pendingIntent = PendingIntent.GetActivity(Application.Context, 0, intent, PendingIntentFlags.UpdateCurrent);
            builder.SetContentIntent(pendingIntent);
            builder.SetWhen(RepositoryService.TimeMillis(time));
            builder.SetPriority((int)NotificationPriority.Max);
         builder.SetCategory(NotificationPriorityCategory.Calls.ToString());
            Android.App.Notification notification = builder.Build();
            notification.Defaults |= NotificationDefaults.Vibrate;
            notificationManager?.Notify("", id, notification);

我可以添加什么来在通知发生时启用屏幕?

/厄

1 个答案:

答案 0 :(得分:3)

ACQUIRE_CAUSES_WAKEUP添加到唤醒锁定标志:

var powerManager = (PowerManager)GetSystemService(PowerService);
var wakeLock = powerManager.NewWakeLock(WakeLockFlags.ScreenDim | WakeLockFlags.AcquireCausesWakeup, "StackOverflow");
wakeLock.Acquire();
await Task.Delay(1000);
wakeLock.Release();
  

唤醒锁定标志:获取唤醒锁定时打开屏幕。

回复:PowerManager: ACQUIRE_CAUSES_WAKEUP