2017-02-10 13 views
1

マイアクティビティが開始されるとすぐに、アクセシビリティによっていくつかの指示を読んでいます。これどうやってするの? (私はアクティビティラベルを読みたくありません)Androidのアクセシビリティ:アクティビティの起動時にカスタムテキストを読む

+0

もっと情報を提供してください...あなたは何を読んでいますか?ビュー、文字列... –

+0

そう言えば、「XYZスクリーンが起動しました」と言うはずです。 – 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が唯一信頼できる回避策です。

関連する問題