Created
November 5, 2015 18:59
-
-
Save suwhs/eb765beed87e1d6fbfc8 to your computer and use it in GitHub Desktop.
Android: Catch Other Apps Notifcations With Accessibility Service
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package su.whs.notifications; | |
import android.accessibilityservice.AccessibilityService; | |
import android.accessibilityservice.AccessibilityServiceInfo; | |
import android.app.Notification; | |
import android.view.accessibility.AccessibilityEvent; | |
public class NotificationService extends AccessibilityService { | |
@Override | |
public void onAccessibilityEvent(AccessibilityEvent event) { | |
System.out.println("onAccessibilityEvent"); | |
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) { | |
if ("<application-package-id>".equals(event.getPackageName())) { | |
Notification e = (Notification) event.getParcelableData(); | |
handleNotify(event.getPackageName().toString(),e); | |
} | |
} | |
} | |
@Override | |
protected void onServiceConnected() { | |
System.out.println("onServiceConnected"); | |
AccessibilityServiceInfo info = new AccessibilityServiceInfo(); | |
info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED; | |
info.notificationTimeout = 100; | |
info.feedbackType = AccessibilityEvent.TYPES_ALL_MASK; | |
setServiceInfo(info); | |
} | |
@Override | |
public void onInterrupt() { | |
System.out.println("onInterrupt"); | |
} | |
private void handleNotify(String packageName, Notification e) { | |
// handle notification for packageName | |
... | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment