0

我能够使用 Accessablity 服务拦截所有通知。这个块是看到事件的地方:

   @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+ 上执行吗?

谢谢。

4

1 回答 1

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();
        }
}
于 2013-11-11T02:43:41.877 回答