我刚刚开始编写使用无障碍服务的应用程序。我将详细解释我的问题。
以下是我MyAccessibilityService
课的onServiceConnected
方法
protected void onServiceConnected() {
super.onServiceConnected();
AccessibilityServiceInfo info = getServiceInfo();
info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED | AccessibilityEvent.WINDOWS_CHANGE_ADDED;
info.packageNames = new String[]
{THIRD_PARTY_APP_PACKAGE};
info.notificationTimeout = 100;
this.setServiceInfo(info);
}
应用正在onAccessibilityEvent()
方法中检测事件
public void onAccessibilityEvent(AccessibilityEvent event) {
AccessibilityNodeInfo source = event.getSource();
if (source == null) {
return;
}
Toast.makeText(this, "Event Occured", Toast.LENGTH_SHORT).show();
}
现在,当我打开第三方应用程序时,我收到Toast"事件发生"。现在我关闭应用程序,当我再次打开它时,没有调用该方法,也没有收到任何 Toast。要使其再次工作,我必须在手机的"设置"中禁用我的应用程序的辅助功能服务,然后再次启用它。
我知道我错过了一些东西,我唯一的问题是代码的附加部分应该是什么,或者我需要进行哪些修改才能在每次打开第三方应用程序时检测事件?
您是否尝试过摆脱通知超时?您可能不需要它,而且它不是测试最好的 API。