Xamarin如何获得所有系统通知?

时间:2018-09-21 20:24:47

标签: android google-maps xamarin xamarin.android

我是新来的。我正在开发按FAT按钮时正在使用Google Maps的应用程序。由于目前Google Maps并未指示您何时完成导航,因此为了能够返回到我的应用程序,我正在尝试以某种方式执行此操作。 我在想,当您处于导航模式时,谷歌地图会向您显示一条通知。在导航完成之前,不会删除它。我想收到此通知,并在按下按钮时检查该通知是否处于活动状态。如果未激活,则可以返回到我的应用程序。 这就是我一直在尝试的事情:

 NotificationManager notificationManager =
          GetSystemService(Context.NotificationService) as NotificationManager;

                            StatusBarNotification[] nnn2 = notificationManager.GetActiveNotifications();

当我检查nnn2以查看哪些服务处于活动状态时,它什么也没有。我不知道是否需要在清单中添加一些权限,或者我完全错了。

1 个答案:

答案 0 :(得分:0)

这是可能的,并且可以执行以下操作:

对于低于API 11的级别:

 Notification notify = new Notification();
            notify.Defaults = NotificationDefaults.Sound;
            notify.Defaults = NotificationDefaults.Vibrate;
            notify.Flags = NotificationFlags.NoClear;// Cruicial line of code 

对于API 11及更高版本:

 Notification notify = new Notification();
            notify.Defaults = NotificationDefaults.Sound;
            notify.Defaults = NotificationDefaults.Vibrate;
            notify.Flags = NotificationFlags.NoClear;

 NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
             .SetSmallIcon(Resource.Drawable.Icon)
             .SetContentTitle(messageTitle)
             .SetContentText(messageBody)
             .SetOngoing(true)//Important line of code
             .SetContentIntent(pendingIntent);
 NotificationManagerCompat notificationManager = NotificationManagerCompat.From(this);
            notificationManager.Notify(0, notificationBuilder.Build());