Писане на приложение за четене на входящи съобщения (TTS - Text-to-Speech)
Създаваме нов проект, задаваме минималната версия на Android на 2.3. Създайте празна дейност Празно Дейност.
Нашето бъдещо приложение трябва да получи 3 разрешения във файла на манифеста:
- ПОЛУЧАВАЙТЕ_СМС - за получаване на SMS съобщения;
- ПРОЧЕТИ_СМС - за четене на SMS съобщения;
- ПРОЧЕТИ_КОНТАКТИ - за да се покаже името на човека, чието съобщение е дошло.
Добави към AndroidManifest.xml следните редове:
Нашето приложение ще има само портретна ориентация, така че ще декларираме това в маркера :
Това завършва работата с файла AndroidManifest.xml завършен.
Сега нека редактираме файла strings.xml, добавяне на следните редове там:
Сега нека да стигнем до персонализиране на външния вид на нашето приложение. Отваряне на интерфейсния файл дейност_основен.xml. Трябва да добавим елементи:
- TextView - да се покаже името на този, чийто последен SMS пристигна при нас;
- TextView - за показване на съдържанието на последния SMS;
- ToggleButton - превключвател за включване и изключване на четене на съобщения.
След добавяне на необходимите елементи, нашият файл с оформление изглежда така:
Сега нека създадем нов клас, за да персонализираме нашия говорител. Създайте нов Java клас Високоговорител.java. Той ще се използва, за да се избегне стартирането TTS API заедно с основните Дейност. Този клас ще се изпълни OnInitListener интерфейс, който ще ви каже, че TTS е готов за употреба. Ще напишем тази готова за изпълнение метрика като булева променлива с име ready. Също така ще зададем още една разрешена булева променлива, която приема стойността true, когато потребителят е позволил на TTS да говори съобщения. Също така ще създадем методи за получаване и задаване на стойностите на тези променливи. Така че, ако всичко по-горе бъде въведено в нашия клас, то ще изглежда така:
Интерфейс OnInitListener има само един метод - onInit. Този метод се изпълнява, когато TTS се инициализира. Параметър Състояние ни уведомява как протече инициализацията. Когато се потвърди, че инициализацията е била успешна, трябва да конфигурираме правилния език, за да работи TTS. Затова добавяме този метод: