我可以使用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 +上进行吗?
感谢。
答案 0 :(得分:0)
另一个应用程序的通知是READ-ONLY。 因此,像“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();
}
}