Android 显示前处理状态栏通知

Android 显示前处理状态栏通知,android,android-notifications,Android,Android Notifications,我正在使用NotificationListenerService处理设备通知: @Override public void onNotificationPosted(StatusBarNotification sbn) { Log.d(TAG,"onNotificationPosted posted - ID :" + sbn.getId() + "\t" + sbn.getNotification().tickerText + "\t" + sbn.getPa

我正在使用
NotificationListenerService
处理设备通知:

@Override
public void onNotificationPosted(StatusBarNotification sbn) {

    Log.d(TAG,"onNotificationPosted posted - ID :" + sbn.getId() + "\t"
            + sbn.getNotification().tickerText + "\t" + sbn.getPackageName());
 }
在设备上发布通知后,将调用
onNotificationPosted()
方法。有没有办法在它出现之前抓住它

我看到,阅读通知也可以通过使用来实现,但它在通知弹出后再次被读取

有没有办法将弹出的设备通知延迟到某一时刻


我知道我可以使用
NotificationListenerService
删除通知(在它弹出给用户之后),并保存它,稍后尝试重新启动它。但是我在重新启动时遇到了问题,在状态栏通知已经显示之后,这种情况再次发生。

目前,使用
NotificationListenerService
是获得通知并与
StatusBarNotifications
交互的唯一方法。在通知到达状态栏之前拦截和处理通知是不允许的,这将是一个相当明显的安全违规行为-这里也确认了这一点:


如果这是可能的,那么从理论上讲,应用程序可以阻止系统范围内所有其他应用程序的所有通知,这不是一件好事。此外,即使使用
NotificationListenerService
,您也只能看到来自其他应用程序的通知,而不能更改或删除它们。修改/取消应用程序通知的方法,即
cancelAllNotifications()
,仅用于更改调用应用程序生成的通知。

您所说的是哪种通知?gcm推送通知?或者任何其他…为什么你不能在显示它之前完成所有必要的工作?设备上的所有应用程序通知。在展示之前,我很乐意做这项工作。我该如何处理这些通知?AFAIK android的通知侦听器是处理通知的唯一方法,但在展示之后。否则就没有其他方法,或者至少我知道的任何方法。您的目标是在通知到达时隐藏(或控制)通知,而不是显示它们并分散用户的注意力吗?如果是这样,隐藏状态栏是一种可能的(或部分)解决方案吗?您可以提示用户使用“操作”\u“管理”\u“所有应用程序”\u设置对通知进行优先级排序和切换。在意图显示通知屏幕中启动此活动。