0

アクセシビリティ サービスを使用して、すべての通知を傍受できます。このブロックは、イベントが表示される場所です。

   @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 に答える