【发布时间】:2015-05-01 01:31:01
【问题描述】:
我正在使用NotificationListenerService 处理设备通知:
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Log.d(TAG,"onNotificationPosted posted - ID :" + sbn.getId() + "\t"
+ sbn.getNotification().tickerText + "\t" + sbn.getPackageName());
}
在设备上发布通知后调用onNotificationPosted() 方法。有没有办法在它出现之前抓住它?
我看到也可以使用AccessibilityManager 实现读取通知,但在弹出通知后再次读取。
有没有办法将设备通知弹出窗口延迟到某个时刻?
我知道我可以使用NotificationListenerService 删除通知(在它弹出给用户之后)并保存它并稍后尝试重新启动它。但是我在重新启动时遇到了问题,并且在状态栏通知已经显示之后再次发生这种情况。
【问题讨论】:
-
您说的是哪种通知? gcm推送通知?或任何其他......为什么你不能在展示之前完成所有必要的工作?
-
设备通知上的所有应用。我很乐意在展示之前完成这项工作,我该如何接收这些通知?
-
AFAIK android 的通知侦听器是处理通知的唯一方法,但在显示之后。否则没有其他方法,或者至少我知道。
-
您的目标是在通知到达时隐藏(或以其他方式控制)而不显示它们并分散用户的注意力吗?如果是这样,隐藏状态栏是可能的(或部分)解决方案吗?
-
您可以使用 ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS 提示用户优先考虑和切换通知。以此启动 Activity 以显示通知屏幕。
标签: android android-notifications