android - 启用无障碍服务后,无障碍事件仅发生一次
问题描述
我刚刚开始编写使用辅助功能服务的应用程序。我会详细解释我的问题。
下面是我上课的onServiceConnected
方法MyAccessibilityService
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。
推荐阅读
- cmake - 在已安装的目标二进制文件上运行 cmake 命令
- javascript - 如何遍历Object然后得到IndexOf字符串,例如A,B..然后如果A = 1,b = 2则转换为值
- c# - RadCombobox SelectedValue 为 Null
- mysql - MySQL 根据列值的优先级进行选择
- android - 最后带有固定字符的可编辑文本
- airflow - Apache Airflow 忽略失败的任务
- ffmpeg - FFmpeg - 缓冲区队列溢出,丢弃 - 组合 2 个视频并使用 concat、hstack 和 trim 时
- microsoft-graph-api - Graph Explorer 似乎不支持 EDU 端点
- python - pandas.read_csv 在导入时更改值
- python - Python:拆分未知长度的输入并创建一个数组