メニュー項目にアクセシビリティ デリゲートを設定する方法はありますか? 私のアプリはテキスト読み上げを使用しており、TalkBack がメニュー項目のコンテンツの説明を読み上げる前に、いくつかのカスタム コードを実行したいと考えています (メニュー項目がアクセシビリティ フォーカスを取得したときに発生します)。そうしないと、アプリからのテキスト読み上げが TalkBack のテキスト読み上げと競合します。
更新: 私のアプリは、WebView から文をフェッチし、強調表示して、TTS エンジンを使用して読み取ります。文が読み上げられると、 onDone() コールバックは同じメソッドを開始しますが、次の文に対してです。
TalkBack と私のアプリは同じ TTS エンジンを使用しているため、一度に発声できるのは 1 つのみです。したがって、私のアプリは WebView の文を文ごとに読み上げていますが、ユーザーがメニュー項目に注目すると、TalkBack がその説明を読み上げます。私の発話が中断されたので、onDone() が呼び出されます (onDone() は、発話が完全に発話されたのか、単に中断されたのかを区別できません)。言葉。メニュー項目のアクセシビリティ イベントが発生する前に、どういうわけか isPaused ブール値を true に設定したいと思います。
private class ttsUtteranceListener extends UtteranceProgressListener {
@Override
public void onStart(String utteranceId) {
}
@Override
public void onDone(final String utteranceId) {
if (!isPaused) {
...
speakNextSentence();
...
}
}
@Override
public void onError(String utteranceId) {
}