2015-12-14 2 views
1

Я пытаюсь добавить дополнительную информацию в TextToSpeech (TTS) для пользователей с доступом, например, когда пользователь нажимает кнопку календаря, должно быть объявление TTS, такое как виджет календаря, пользователь следует прокручивать вверх или вниз, чтобы выбрать дату.TextToSpeech не работает, когда открыт датпикер

Итак, я добавил код textToSpeech внутри кнопки календаря. Но TTS не работает, и talkback непосредственно объявляет дату, выбранную/текущую дату.

Моя структура кода, как: -

  calendarButton.onclick{ 
      if(accessibilityIsActive) 
      tts.speak("This is a calendar widget.Do this... to select a date") 
      }; 

Когда я нахожусь в режиме отладки и выполнить шаг за шагом, TTS запускается на выполнение, и я мог услышать мой text.But Когда в нормальном режиме я выбираю кнопку TALKBACK переопределяет этот шаг, и основное внимание уделяется заголовку диалогового окна, который является текущей датой, и поэтому он просто сообщает текущую дату. Я использую виджет календарей Android по умолчанию.

Есть ли способ, которым я могу заставить работу TTS, а затем позволить ответчику вернуть контроль над диалоговым окном даты ??? Я использую nexus 5 с android OS 6.0

ответ

0

Не используйте TTS напрямую. Опубликуйте объявление о доступности и дайте платформе Accessibility решить, как с ней справиться.

AccessibilityEvent e = AccessibilityEvent.obtain(); 
e.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT); 
e.setClassName(getClass().getName()); 
e.setPackageName(context.getPackageName()); 
e.getText().add("some text"); 
manager.sendAccessibilityEvent(e);