我希望在我的活动启动后立即通过辅助功能阅读一些说明。我怎样才能做到这一点? (我不想读出活动标签)
答案 0 :(得分:3)
您可以通过发布辅助功能公告事件来完成此操作。
AccessibilityManager manager = (AccessibilityManager)mService.getSystemService(Context.ACCESSIBILITY_SERVICE);
if (manager.isEnabled()) {
AccessibilityEvent e = AccessibilityEvent.obtain();
e.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
e.getText().add(message);
//There may be other things you need to add like class/packagename, I'm doing this from memory on my non-dev machine, so if this isn't quite right I apologize, I promise it's super close! :)
manager.sendAccessibilityEvent(e);
}
请注意,您可能无法在onCreate方法的活动中执行此操作。随着无障碍服务的附加,存在微妙的竞争条件。如果确实将它放在onCreate中不起作用,请尝试将其添加到具有延迟的Runnable,或者在onPostResume中,我相信这是该链中的最新回调。但最终,如果这是一个问题,延迟的Runnable是唯一可靠的解决方法。