2017-02-10 71 views
1

只要“我的活动”启动,我想通过辅助功能阅读一些说明。我怎样才能做到这一点? (我不想读出活动标签)Android辅助功能:读取活动启动时的自定义文本

+0

请提供更多的信息.​​..你想读什么?一个视图,一个字符串...... –

+0

让我们说一旦我启动活动,它应该说“XYZ屏幕启动,请稍候,而我们做Blah // Blah” – Amit

+0

你想要这只在第一个活动,当你打开应用程序或对于你打开的每一项新活动?每打开一个新活动,我都会打开这个 –

回答

2

您可以通过发布可访问性公告事件来完成此操作。

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是唯一可靠的解决方法。