我的应用程序正在使用 Accessibility API 来捕获其他应用程序生成的通知并对其进行操作。我想添加一个可以取消原始通知(由其他应用程序生成)的功能。
使用通知管理器的常用方法不起作用,因为您必须是创建通知的人才能清除它。可访问性 API 让我可以读取不同应用程序的通知,但它是否也允许您清除它?
谢谢!
我的应用程序正在使用 Accessibility API 来捕获其他应用程序生成的通知并对其进行操作。我想添加一个可以取消原始通知(由其他应用程序生成)的功能。
使用通知管理器的常用方法不起作用,因为您必须是创建通知的人才能清除它。可访问性 API 让我可以读取不同应用程序的通知,但它是否也允许您清除它?
谢谢!
不,您不能清除其他应用程序的通知(谢天谢地)。
public void onAccessibilityEvent(AccessibilityEvent event) {
// TODO Auto-generated method stub
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
//Do something, eg getting packagename
final String packagename = String.valueOf(event.getPackageName());
final String text = String.valueOf(event.getText());
if(TARGET_PACKAGE.equals(packagename)){
Notification n = (Notification) event.getParcelableData();
try{
n.deleteIntent.send(this,0,new Intent());
}catch(Exception e){e.printStackTrace();}
}
}
如果通知的 deleteIntent 已经定义,可以取消它。