Reading Notifications Using AccessibilityService

I recently tried to read incoming notifications using the AccessibilityService . I know reading notifications using NotificationListenerService , but this is not what I need (for compatibility with lower versions of Android). My problem: OnServiceConnected() never called, although in my settings I gave my application the necessary prerequisites. Here is my code:

 public class NotificationAccessibilityService extends AccessibilityService{ protected void onServiceConnected() { Log.d("Tortuga", "AccessibilityService Connected"); AccessibilityServiceInfo info = new AccessibilityServiceInfo(); info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED; info.feedbackType = AccessibilityServiceInfo.FEEDBACK_ALL_MASK; info.notificationTimeout = 100; setServiceInfo(info); } @Override public void onAccessibilityEvent(AccessibilityEvent e) { Log.d("Tortuga","FML"); if (e.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) { Log.d("Tortuga","Recieved event"); Parcelable data = e.getParcelableData(); if (data instanceof Notification) { Log.d("Tortuga","Recieved notification"); Notification notification = (Notification) data; Log.d("Tortuga","ticker: " + notification.tickerText); Log.d("Tortuga","icon: " + notification.icon); Log.d("Tortuga", "notification: "+ e.getText()); } } } @Override public void onInterrupt() { // TODO Auto-generated method stub } } 

And my XML:

AndroidManifest.xml

 <service android:name="com.tortuga.shutapp.NotificationAccessibilityService" android:label="@string/app_name" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" > <intent-filter> <action android:name="android.accessibilityservice.AccessibilityService" /> </intent-filter> <meta-data android:name="android.accessibilityservice" android:resource="@xml/accessibilityservice" /> </service> 

XML \ accessibilityservice.xml

 <?xml version="1.0" encoding="utf-8"?> <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" android:accessibilityEventTypes="typeNotificationStateChanged" android:accessibilityFeedbackType="feedbackSpoken" android:notificationTimeout="100" /> 

Please help, I'm lost. I am currently working on the Nexus 5. Thank you!

+6
source share
1 answer

Did you start the service? In the section "Settings - Availability - Your Service"

+4
source

All Articles