Android NotificationListener 取消通知不起作用
Android NotificationListener cancel notification not working
所以我正在使用 NotificationListener
服务来取消来自某些应用程序的某些通知,这样它就不会干扰我的无障碍服务触摸屏幕(当我的应用程序试图点击时,IE facebook 会下拉屏幕顶部)。
但我有一个问题,它没有取消应用程序通知,即使 onNotificationRemoved
显示应该取消它。
@Override
public void onNotificationPosted(StatusBarNotification sbn)
{
cancelNotification(sbn.getKey());
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
Log.e("Msg","Notification Removed");
}
我确实查看了我试图取消的其他应用程序的通知权限,发现它们设置为 Urgent: Sound and pop up on screen
或 High Priority
。这会阻止我取消它们吗?如果是这样,有没有办法以编程方式更改它而无需我的用户做任何事情?
好吧,我要做的就是禁止那些不允许清除的通知。这是我的最终解决方案(尽管这仅适用于 Build.Version O):
boolean canClear = sbn.isClearable();
if (canClear){
cancelNotification(sbn.getKey());
}else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
snoozeNotification(sbn.getKey(), Long.MAX_VALUE - System.currentTimeMillis());
}
}
到目前为止,我看到的唯一缺点是,除非您重新启动 phone。
,否则无法取消暂停应用程序
所以我正在使用 NotificationListener
服务来取消来自某些应用程序的某些通知,这样它就不会干扰我的无障碍服务触摸屏幕(当我的应用程序试图点击时,IE facebook 会下拉屏幕顶部)。
但我有一个问题,它没有取消应用程序通知,即使 onNotificationRemoved
显示应该取消它。
@Override
public void onNotificationPosted(StatusBarNotification sbn)
{
cancelNotification(sbn.getKey());
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
Log.e("Msg","Notification Removed");
}
我确实查看了我试图取消的其他应用程序的通知权限,发现它们设置为 Urgent: Sound and pop up on screen
或 High Priority
。这会阻止我取消它们吗?如果是这样,有没有办法以编程方式更改它而无需我的用户做任何事情?
好吧,我要做的就是禁止那些不允许清除的通知。这是我的最终解决方案(尽管这仅适用于 Build.Version O):
boolean canClear = sbn.isClearable();
if (canClear){
cancelNotification(sbn.getKey());
}else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
snoozeNotification(sbn.getKey(), Long.MAX_VALUE - System.currentTimeMillis());
}
}
到目前为止,我看到的唯一缺点是,除非您重新启动 phone。
,否则无法取消暂停应用程序