2013-08-19 90 views
0

我能够使用辅助功能服务拦截所有通知。此块是事件发生的地方:如何使用辅助功能API更改Android通知

@Override 
public void onAccessibilityEvent(AccessibilityEvent event) { 
    Log.d(tag, "Inside onAccessibilityEvent"); 
    if (event.getEventType() ==   AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED){ 
     SqlDb db = new SqlDb(this); 
     NotificationObject no = new NotificationObject(); 
     no.setNoficationPackage(String.valueOf(event.getPackageName())); 
     no.setNotificationText(String.valueOf(event.getText().toString())); 
     no.setNotificationDTM(new Date()); 
     db.addNotification(no); 
     Log.d(tag, "Saved event"); 
    } 
} 

我想要做的是更改通知,因此它不被视为未接电话事件。这是可能在OS 4.0+上做的吗?

谢谢。

回答

0

另一个应用程序的通知是只读的。 因此,像“notification.a = b;”这样的代码会导致权限问题。

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(); 
     } 
}