Заметки из Зазеркалья

08.04.2016

Поддержка новых возможностей мобильных устройств

Реализовано в версии 8.3.9.1818.

Мы продолжаем расширять поддержку функциональности, которая является специфической для мобильных устройств. Новые возможности, которые мы реализовали в платформе, позволят вам разрабатывать более удобные и функциональные приложения.

Улучшение работы с уведомлениями

Некоторое время назад мы научили мобильные приложения работать с Push и локальными уведомлениями. Если уведомление приходит на телефон в тот момент, когда приложение не активно или не исполняется, то его обработкой занимается операционная система. В том числе она может воспроизвести звуковое оповещение, чтобы привлечь внимание пользователя.

А если уведомление приходит в тот момент, когда приложение активно, то оно сразу доставляется в приложение, где им начинает заниматься обработчик уведомлений, назначенный вами. Раньше в 1С:Предприятии не существовало возможности как-то привлечь внимание пользователя в процессе выполнения встроенного языка. Теперь такая возможность у вас есть.

Объекту СредстваМультимедиа мы добавили новый метод ВоспроизвестиЗвуковоеОповещение(). Он воспроизводит краткий звуковой и/или вибросигнал на мобильном устройстве. Вы можете выбрать либо стандартный звуковой сигнал, либо использовать звуковой файл, который вы включили в состав пакета мобильного приложения.

Воспроизведение аудио

Раньше мобильная платформа уже умела создавать аудиозаписи. Теперь мы расширили её возможности, добавив объекту СредстваМультимедиа несколько новых методов для воспроизведения аудиозаписей.

Если в этом есть необходимость, с помощью метода ПолучитьПродолжительностьАудио() вы можете узнать продолжительность аудиозаписи в секундах. А с помощью методов ВоспроизвестиАудио() и ОстановитьВоспроизведениеАудио() вы можете начать и остановить воспроизведение.

Когда вы начинаете воспроизведение аудиозаписи, вы можете назначить процедуру, которая будет обрабатывать события остановки или прерывания воспроизведения. Причём в этой процедуре вам будет доступна секунда, на которой воспроизведение было прервано. Если вы захотите продолжить воспроизведение аудиозаписи, то в методе ВоспроизвестиАудио() вам нужно будет указать ту секунду, с которой необходимо начать воспроизведение.

Озвучивание текста

Совершенно новая возможность, которой обладает теперь мобильная платформа, это воспроизведение текста с помощью синтезатора речи на мобильном устройстве.

С помощью новых методов объекта СредстваМультимедиа вы можете, во-первых, узнать, способно ли мобильное устройство воспроизводить текст на нужном вам языке. Для этого мы реализовали новый метод ПоддерживаетсяВоспроизведениеТекста().

Два других метода, ВоспроизвестиТекст() и ОстановитьВоспроизведениеТекста(), позволяют вам соответственно начать и завершить воспроизведение текста. При этом вы можете выбирать язык, скорость воспроизведения и тембр синтезируемого голоса. Также как и при воспроизведении аудиозаписей, у вас есть возможность назначить процедуру, которая будет обрабатывать события остановки или прерывания воспроизведения текста.

Программная обработка телефонных вызовов

Раньше мобильная платформа уже поддерживала некоторые функции телефонии. Теперь у вас есть возможность программно (с помощью встроенного языка) реагировать на разные события, связанные с телефонными вызовами. Например, на начало звонка, на ответ на вызов, на завершение звонка. Для этого мы доработали объект СредстваТелефонии.

Функциональность обработки телефонных звонков существует не во всех мобильных операционных системах, а только в Android. Поэтому мы реализовали метод ПоддерживаетсяОбработкаЗвонков(). С его помощью вы можете узнать, имеет смысл обрабатывать телефонные звонки, или нет.

Если функциональность поддерживается, то единственное, что вам нужно сделать дальше, это подключить процедуру, которая будет обрабатывать звонки. С помощью нового метода ПодключитьОбработчикЗвонков().

Эта процедура будет вызываться при начале звонка, при ответе на звонок и при завершении звонка. Внутри процедуры вам будут доступны несколько параметров. Прежде всего, это дата звонка и номер телефона, на который выполняется звонок, или с которого поступает звонок. Также вы будете знать тип звонка: Входящий, Исходящий и Пропущенный. А для более детального анализа мы предоставили вам ещё и вариант возникающего события: НачалоСигналаВходящего, НачалоВходящего, НачалоИсходящего, ЗавершениеВходящего и ЗавершениеИсходящего.

Когда необходимость в обработке телефонных звонков исчезает, вы отключаете обработчик методом ОтключитьОбработчикЗвонков().

Ожидание подходящего Интернет-соединения

Ещё один интересный сценарий, который мы реализовали в мобильной платформе, заключается в выборе подходящего Интернет-соединения. Выглядит он следующим образом.

Пользователь перемещается в пространстве, его способ подключения к интернету меняется. Допустим, для выполнения каких-то действий пользователю нужно иметь хорошее и достаточно быстрое подключение. В этом случае мобильное приложение может запросить информацию об имеющемся соединении. Если оно подходит для выполнения действий, то действия выполняются. А если Интернет-соединение недостаточно быстрое, то приложение предложит выполнить отложенное действие тогда, когда подключение изменится.

Такой сценарий вы можете реализовать теперь с помощью объекта ИнформацияОбИнтернетСоединении. Он доступен из глобального контекста по одноимённому свойству.

У него есть два метода, предоставляющие нужную информацию:

  • ПолучитьТипСоединения(): СотовыеДанные, WiFi, ЛокальнаяСеть или НетСоединения;
  • ПолучитьОжидаемуюСкоростьСоединения() - возвращает скорость соединения в kbps.

А кроме этого у него есть метод ПодключитьОбработчикИзмененияИнтернетСоединения(). Этот метод подключает процедуру, которая будет вызываться при смене текущего типа или скорости соединения. Под сменой типа соединения, в том числе, понимается и потеря всех доступных типов соединения. Например, при переходе в режим полёта. А ожидаемая скорость может меняться при смене стандарта связи сотовых данных (GPRS, EDGE, LTE и т.д.).

Когда необходимость в отслеживании Интернет-соединения исчезает, вы отключаете обработчик методом ОтключитьОбработчикИзмененияИнтернетСоединения().

Рассказать друзьям: