我的代码适用于4以上的Android版本但在Android 2.2或2.3中我无法检测到任何事件。 Android日志显示服务正在运行,但每当我触发事件时,Accessibility服务都无法识别它。 在以下代码中:
public void onAccessibilityEvent(AccessibilityEvent event)
{
Log.i("abc","------service running---------");
final int eventType = event.getEventType();
switch(eventType)
{
case AccessibilityEvent.TYPE_VIEW_CLICKED :
//do something
break;
}
}
我也无法获得Log "------service running---------"
。
我错过了什么是否需要进行任何更改才能在不同版本的android上运行相同的代码。
答案 0 :(得分:0)
您需要通过在onServiceConnected()中设置服务的AccessibilityServiceInfo来手动指定服务的事件和反馈类型。
以下是TalkBack的一个例子:
@Override
public void onServiceConnected() {
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN;
info.notificationTimeout = 0;
info.flags = AccessibilityServiceInfo.DEFAULT;
setServiceInfo(info);
}