2017-05-30 40 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