2017-05-30 38 views
0

我试图创建一个通知这就是开启屏幕,当它发生(与来电/短信)Xamarin的Android notifcation - 打开屏幕

我有这个

  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); 

我能添加以便在发生通知时启动屏幕?

/厄

回答

2

添加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

+0

伟大工程:)谢谢。 – Birger