我正在尝试创建一个通知,当它发生时会打开屏幕(与通话/短信相同)
我有这个
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);
我可以添加什么来在通知发生时启用屏幕?
/厄
答案 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();
唤醒锁定标志:获取唤醒锁定时打开屏幕。