jelly bean中未收到Android可访问性onAccessibilityEvent

jelly bean中未收到Android可访问性onAccessibilityEvent,android,accessibility,android-4.2-jelly-bean,Android,Accessibility,Android 4.2 Jelly Bean,我正在尝试通过Jelly bean(android版本4.1.1)在android手机上接收可访问性事件 我看到了几个解决这个问题的问题(特别是关于JB和前JB之间的兼容性): 根据所有这些问题(特别是最后一个问题),如果我不想确保向后兼容性,我需要做的就是添加行 android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" 在我的清单文件中,并包含xml配置文件 我这样做了,但在通知栏中发布通知时,仍然无法接收o

我正在尝试通过Jelly bean(android版本4.1.1)在android手机上接收可访问性事件

我看到了几个解决这个问题的问题(特别是关于JB和前JB之间的兼容性):

根据所有这些问题(特别是最后一个问题),如果我不想确保向后兼容性,我需要做的就是添加行

android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
在我的清单文件中,并包含xml配置文件

我这样做了,但在通知栏中发布通知时,仍然无法接收onAccessibilityEvent通知。 这是我的密码

public class NotificationService extends AccessibilityService {

private static final Logger logger = LoggerFactory.getLogger ("NotificationService");

@Override
public void onCreate()
{
    super.onCreate();
    logger.trace ("onCreate");
}

@Override
public void onDestroy()
{
    super.onDestroy();
    logger.trace ("onDestroy");
}

@Override
protected void onServiceConnected() {
    logger.trace("onServiceConnected");
    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 onInterrupt() {
    // TODO Auto-generated method stub
}

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
    logger.trace("onAccessibilityEvent");


    if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
        logger.info("notification: " + event.getText());
    }

}

}
下面是我如何在清单文件中声明服务

<service android:name=".NotificationService"
         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>

这是我的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="feedbackAllMask"
    android:notificationTimeout="100" />

当我运行我的应用程序时,我可以看到该服务已创建并已连接,但未收到任何AccessibilityEvents


谢谢

这在Android 4.1.1上对我有效,但在Android 4.2(Jelly Bean)上失败。您还必须添加一个value-v17文件夹来说明SDK的更改。检查此解决方案

我与您有相同的问题,请尝试此方法。在意向过滤器中添加