Skip to content

Instantly share code, notes, and snippets.

@suwhs
Created November 5, 2015 18:59
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save suwhs/eb765beed87e1d6fbfc8 to your computer and use it in GitHub Desktop.
Save suwhs/eb765beed87e1d6fbfc8 to your computer and use it in GitHub Desktop.
Android: Catch Other Apps Notifcations With Accessibility Service
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