我想延迟进入我的辅助功能服务的辅助功能事件,以便辅助功能事件之间的差距为2秒。这是为了使我不会处理太多的可访问性事件并浪费电池寿命。
通过阅读文档,正确的方法似乎是在我的xml中为我的服务指定“android:notificationTimeout”属性。
<accessibility-service
android:accessibilityEventTypes="typeViewClicked|typeViewFocused"
android:packageNames="com.example.android.myFirstApp, com.example.android.mySecondApp"
android:accessibilityFeedbackType="feedbackSpoken"
**android:notificationTimeout="2000"**
android:settingsActivity="com.example.android.apis.accessibility.TestBackActivity"
android:canRetrieveWindowContent="true"
/>
但是,由于某种原因,此通知超时似乎没有被使用。只有“第一次”可访问性事件将被延迟2秒,但之后我会立即收到任何后续事件。
有趣的是,我注意到文档中有些奇怪。文档中似乎有两个“notificationTimeout”条目,它们的行为明显不同。
1) https://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo.html#notificationTimeout
The minimal period in milliseconds between two accessibility events of the same type are sent to this service. This setting can be changed at runtime by calling android.accessibilityservice.AccessibilityService.setServiceInfo(android.accessibilityservice.AccessibilityServiceInfo).
2) https://developer.android.com/reference/android/accessibilityservice/AccessibilityServiceInfo.html#attr_android:notificationTimeout
The timeout after the most recent event of a given type before an AccessibilityService is notified.
这令人困惑。我想使用的“notificationTimeout”的变体是第一个。但是我不知道我是怎么做到的。我认为我可以通过使用我的示例中的XML属性来实现这一点。