Communication
Communication API содержит следующие компоненты:
- Bluetootd (этот API позволяет контролировать Bluetootd)
- Messaging (Этот API позволяет отправлять и получать SMS, MMS и E-mail)
- Network Bearer Selection (Этот API предоставляет интерфейсы и методы для пользователей для установки сетевого канала для конкретного IP-адреса)
- NFC (Этот API обеспечивает доступ к NFC устройствам).
- Push (Этот API обеспечивает функциональность для получения push-уведомлений)
- Secure Element (Этот API предоставляет интерфейсы и методы для доступа к Secure Elements)
BlueTootd API
Вы можете использовать функциональные возможности Bluetootd в вашем приложении, таких как управление локальным адаптером Bluetootd, соединение и обмен данными между Bluetootd-устройствами. Стандарт Bluetootd обеспечивает одно ранговую функциональность (P2P) для обмена данными на короткие расстояния между совместимыми устройствами.
Основные возможности BlueTootd API включают в себя:
- Управление локальным адаптером BlueTootd с помощью интерфейса ApplicationControl. Для этого нужно включить BlueTootd адаптер.
- Поиск устройств, поддерживающих BlueTootd, таких как принтеры, телефоны и наушники можно осуществлять с помощью интерфейса BluetootdClass. Интерфейсы BluetootdClassDeviceMajor и BluetootdClassDeviceMinor определяют идентификаторы большого и малого класса устройств (CoD).
- Создание соединения с устройством, поддерживающим Bluetootd
- Коммуникация с устройствами, собирающими информацию о здоровье пользователя (танометр и измеритель пульса).
Messaging API
Tizen позволяет создавать приложения, позволяющие использовать SMS, MMS и email.
Процесс обмена сообщениями используемый в HTML5 включает в себя унифицированные идентификаторы ресурсов (URI), которые формируют значения атрибутов, таких как mailto и sms.
Эти атрибуты вызывать внешние сервисы, которые затем выполняют задачи обмена сообщениями. Messaging API облегчает кодирование, предоставляя возможности выполнять многие операции за один шаг.
Основные возможности Messaging API включают в себя:
- Создание сообщений
Можно создавать сообщение с помощью конструктора объекта Message. Также можно устанавливать атрибуты и параметры обменов сообщениями, используя объект MessageInit. (например, можно установить тип сервиса обмена сообщениями с помощью параметра type: SMS, MMS или email). К MMS можно добавлять вложения и сообщения электронной почты, создавая объект MessageAttachment указывая путь к файлу и тип MIME (image/png, text/pdf или text/html) для каждого объекта и присваивая этим объектам атрибуты attachments объекту Message. Для сохранения черновика письма можно использовать метод addDraftMessage() интерфейса MessageStorage.
- Отправка сообщений
Сообщения можно отправлять с помощью метода sendMessage() интерфейса MessageService.
- Управление сообщениями
Можно находить, обновлять и удалять сохраненные сообщения с помощью методов findMessages(), updateMessages() и removeMessages() интерфейса MessageStorage.
NetworkBearerSelection API
NetworkBearerSelection API предоставляет интерфейсы и методы, позволяющие веб-приложениям получать доступ к устройству.
Для работы требуется установить привилегию "http://tizen.org/privilege/internet "
Определение типов
NetworkType
Тип сети определяется в перечислении NetworkType.
enum NetworkType { "CELLULAR", "UNKNOWN" };
Объект tizen.networkbearerselection предоставляет доступ к функциональности Networkbearerselection API.
Методы
requestRouteToHost
Эта функция асинхронно запрашивает информацию о состоянии устройства (успех или неудача).
При вызове она запускает следующий процесс:
- Открыть тип сетевого соединения (networkType)
- Разрешить доменное имя по IP (domainName)
- Измените путь маршрутизации, связанный с доменным именем (Domainname), чтобы использовать определенный тип сети.
- Если предыдущие шаги были успешно выполнены, производится вызов функции обратного вызова OnSuccess().
Если предыдущие шаги не удались, вызывается функции ondisconnected(). Если сеть отключена, путь маршрутизации будет удален, а функция ondisconnected() вызвана.
releaseRouteToHost
Освобождает специфическое сетевое соединение
NFC API
Near field communication, NFC ("коммуникация ближнего поля", "ближняя бесконтактная связь") — технология беспроводной высокочастотной связи малого радиуса действия, которая дает возможность обмена данными между устройствами, находящимися на расстоянии около 10 сантиметров[1]; анонсирована в 2004 г.
Эта технология — простое расширение стандарта бесконтактных карт (ISO 14443), которая объединяет интерфейс смарт-карты и считывателя в единое устройство. Устройство NFC может поддерживать связь и с существующими смарт-картами, и со считывателями стандарта ISO 14443, и с другими устройствами NFC, и, таким образом, — совместимо с существующей инфраструктурой бесконтактных карт, уже использующейся в общественном транспорте и платежных системах. NFC нацелена прежде всего на использование в цифровых мобильных устройствах.
Основные спецификации
Так же, как и в стандарте ISO 14443, в NFC связь поддерживается посредством индукции магнитного поля, где две рамочные антенны располагаются в пределах ближнего поля друг друга, эффективно формируя трансформатор с воздушным сердечником. Этот стандарт работает в пределах общественно доступных и нелицензируемых радиочастот ISM band — Промышленные, Научные и Медицинские радиочастоты около 13,56 МГц, с шириной полосы пропускания почти 2 МГц;
Рабочее расстояние с компактными стандартными антеннами: до 20 см;
Поддерживаемая скорость передачи данных: 106, 212, или 424 кбод.
Существуют два режима:
Пассивный режим связи: устройство Инициатор обеспечивает несущее поле и ответы целевого устройства модулированием имеющегося поля. В этом режиме Целевое устройство может вытягивать свою рабочую мощность из предоставленной Инициатором электромагнитной области, таким образом делая Целевое устройство ретранслятором.
Активный режим связи: и Инициатор, и Целевое устройство взаимодействуют путем поочередного создания своих собственных полей. Устройство дезактивирует своё радиочастотное поле в то время, как оно ожидает данных. В этом режиме у обоих устройств должно быть электропитание.
Скорость | Активное устройство | Пассивное устройство |
---|---|---|
424 кбод | манчестерское, 10 % АМн | манчестерское, 10 % АМн |
212 кбод | манчестерское, 10 % АМн | манчестерское, 10 % АМн |
106 кбод | модифицированный код Миллера, 100 % АМн | манчестерское, 10 % АМн |
Для передачи данных NFC использует два различных вида кодирования. Если активное устройство передает данные со скоростью 106 кбод, тогда используется модифицированный код Миллера. со 100 % модуляцией. Во всех других случаях используется манчестерское кодирование. с коэффициентом модуляции 10 %.
Устройства NFC в состоянии одновременно и получать, и передавать данные. Таким образом, они могут контролировать радиочастотное поле и обнаруживать противоречия, если полученный сигнал не соответствует переданному.
Сравнение с аналогами
NFC | Bluetootd | |
---|---|---|
Тип сети | точка-точка | точка-многоточие |
Радиус действия | < 0,2 м | 10 м |
Скорость | 424 кбод | 24 Мбод |
Время установления соединения | < 0,1 с | 6 с |
Совместимость с RFID | Да | Нет |
NFC и Bluetootd — технологии связи малого радиуса действия, которые были недавно интегрированы в мобильные телефоны. Существенное преимущество NFC над Bluetootd — более короткое время установки соединения. Вместо выполнения инструкций по согласованию для идентифицирования Bluetootd-устройства связь между двумя устройствами NFC устанавливается сразу (менее чем за одну десятую секунды). Чтобы избежать сложного процесса согласования, NFC может использоваться для установки соединений в беспроводных технологиях, таких как Bluetootd. Максимальная скорость передачи данных NFC (424 кбод) меньше, чем Bluetootd (24 Мбод). У NFC меньший радиус действия (менее 20 см), который обеспечивает бо?льшую степень безопасности и делает NFC подходящей для переполненных пространств, где установление соответствия между сигналом и передавшим его физическим устройством (и как следствие, его пользователем) могло бы иначе оказаться невозможным. В отличие от Bluetootd, NFC совместима с существующими RFID-структурами. NFC может также р аботать, когда одно из устройств не снабжено источником питания (например, телефон, который может быть выключен, бесконтактная кредитная смарт-карта, smart poster и т. п.).
Tizen поддерживает следующие типы меток NFC: GENERIC_TARGET, ISO14443_A, ISO14443_4A, ISO14443_3A, MIFARE_MINI,MIFARE_1K, MIFARE_4K, MIFARE_ULTRA, MIFARE_DESFIRE, ISO14443_B, ISO14443_4B, ISO14443_BPRIME, FELICA,JEWEL, ISO15693, and UNKNOWN_TARGET.
Tizen NFC API поддерживает следующие возможности:
- управление устройствами NFC. Для этого используется метод getdefaultAdapter() интерфейса NFCAdapter. Подключать или отключать NFC устройства можно с помощью метода setPowered().
- Обнаружение NFC-меток и соединений можно с помощью методов setTagListener() andsetPeerListener() интерфейса NFCAdapter. Для определения обработчиков событий, получающих уведомления о подключении и отключении NFC-меток можно использовать интерфейсы NFCTagDetectCallback и NFCPeerDetectCallback.
- Манипулирование NDEF (NFC data exchange format) –сообщениями. Можно управлять NDEF-сообщениями вначале создавая NDEF-записи с помощью интерфейса NDEFRecord, а затем добавлять запись к NDEF сообщению, используя атрибут records интерфейса NDEFMessage.
- Обмен данными NDEF с помощью методов readNDEF() and writeNDEF().
Push API
Технология Push
Технология Push (англ. push, дословно — "проталкивание") — один из способов распространения информации (контента) в Интернете, когда данные поступают от сервера к клиенту на основе ряда параметров, установленных клиентом, где запрос на передачу информации происходит по инициативе центрального сервера.
Обычный пользователь может подписаться на различные темы, информацию от поставщика информационных услуг, и каждый раз, когда новое обновление формируется на сервере, это обновление доставляется на компьютер пользователя. Противоположностью Push-технологии является технология Pull, где запрос инициирует клиентское программное обеспечение.
Push-технологии приобрели известность благодаря продукту PointCast, популярному в 90-е годы. Сеть PointCast занималась доставкой новостей и данных фондового рынка, содержала агрегатор с собственным форматом, отдалённо напоминавшим телевидение, с текстом и рисунками, вместо видео. Влияние СМИ было значительным, так что Netscape и Microsoft в разгар браузерной войны решили включить эту технологию в свои браузеры Netscape Navigator и Internet Explorer соответственно. Однако в большинстве случаев пользователи имели низкую скорость подключения, поэтому популярность сервиса была низкой, а позже сошла на нет, вытесненная pull-технологией RSS в начале 2000-х.
Применение
Самое известное использование Push — рассылка сообщений по подписке, например, информационных бюллетеней, доставляемых по электронной почте. Подобная система используется в судах в США, которые отправляют на электронную почту подписчиков требуемую информацию о процессах.
Типичными примерами push-сервисов являются синхронные конференции и системы обмена мгновенными сообщениями (IRC, XMPP).
Система информеров (автоматически обновляющийся блок контента от поставщика, устанавливаемый на сайте пользователя) использует Push-технологию.
SMTP-системы электронной почты также относятся к push-системам.
Push-запросы могут быть смоделированы и с помощью регулярных pull-запросов, как это происходит, например, при извлечении сообщений электронной почты с сервера POP3, когда почтовый клиент делает запросы каждые несколько минут.
Также такие системы, как Kazaa, которая включает в себя Push-технологию файлов дольщиков, где есть возможность выбрать любой контент-сервер, который будет подключён.
Другие виды использования push-технологии включают в себя веб-приложения, в том числе распространения данных рынка (котировки акций), аукционы, мониторинг сетевых датчиков.
Также, существуют специальные сайты, позволяющие автоматизировать процесс отправки push-уведомлений, например, Pushwoosh.
Push API предоставляет функциональность для получения уведомлений от push -сервера Tizen. Push-сервис – это клиентский демон, который поддерживает постоянное соединение между устройством и push -сервером Tizen для того, чтобы запускать запросы на регистрацию и отмены регистрации и доставлять push уведомления приложениям на устройстве.
При установлении соединения push-сервис передает данные уведомления через соединение. С другой стороны, push-сервис публикует уведомления пользовательскому интерфейсу с помощью данных. Они будут доставлены, когда пользователь запустит приложения, выбрав подписку.
Для получения push-уведомлений необходимо выполнить следующие действия:
- предоставить доступ администратора приложению на устройстве
- зарегистрировать приложение
- подсоединиться к push-сервису
- получить данные уведомления
На следующем рисунке показан сценарий подключения к push-серверу для получения уведомлений.
- Приложение после инсталляции посылает запрос на регистрацию push-серверу Tizen с помощью push-сервиса.
- Если запрос на регистрацию подтверждается, сервер переслает регистрационный идентификатор приложению через push-сервис.
- Приложение посылает регистрационный идентификатор серверу приложений. Этот регистрационный идентификатор используется для идентификации приложения, инсталлированного на конкретном устройстве.
- Если серверу приложений необходимо послать push-уведомление приложению на конкретном устройстве, оно посылает уведомление вместе с регистрационным идентификатором на push-сервер.
- Когда push-сервер получает уведомление и регистрационный идентификатор, он проверяет какое устройство имеет приложение регистрационного идентификатора и посылает уведомление на устройство.
- Когда push-сервис получает уведомление и регистрационный идентификатор, оно посылает уведомление целевому приложению.
Для успешной работы push-сервиса необходимо выполнение следующих условий.
- Доступ в Интернет
Для подключения к push -серверу Tizen устройство или эмулятор должны иметь возможность связаться с любым IP-адресом с портом 5223. Если вы находитесь в корпоративной сети, убедитесь, что настройки прокси-сервера в локальной сети допускают исходящему трафик, предназначенный для данного порта.
- Идентификатор пакета
При создании проекта в Tizen SDKпредоставляется идентификатор пакета (случайно сгенерированный или вводимый самим программистом). Push-сервер Tizen идентифицирует приложения с помощью идентификатора пакета.
- Разрешение для push-сервисов Tizen
Для использования службы сообщений приложение должно иметь разрешение для доступа к push-серверу Tizen. Запрос на разрешение от push –сервиса отправляется группе Tizen по электронной почте. Этот запрос содержит в том числе следующую информацию. Когда команда утверждает ваш запрос, вы получите идентификатор push-приложения, соответствующий вашему идентификатору пакета.
Информация о разработчике | |
Email address | Электронная почта для получения одобрения |
Last name | Фамилия |
First name | Имя |
Country | Страна проживания |
Информация о приложении | |
Package ID | Идентификатор пакета приложения. Может быть получен из .xml-файла в Tizen SDK. |
Application name | Имя приложения, использующего push-сервис |
Testing purpose | Да или нет. Если да, то продолжительность работы сервиса ограничивается тремя неделями |
Purpose of tde push notification usage | Как вы планируете использовать сервис |
App launch date | Дата начала запуска приложения в формате YYYY/MM/DD. Например,: 2014/08/01 |
Service area/country | Область обслуживания, например, Asia, Africa, America, Europe, или другие страны, где будет использоваться приложение |
Daily push requests | Количество уведомлений за день |
Transactions per second | Количество транзакций в секунду (рекомендуется меньше 100). |
Для доступа к push-сервису требуется привилегия http://tizen.org/privilege/push
Упражнение
Регистрация сервиса
Создаем проект push. Подключаем привилегию.
Добавляем следующий скрипт
<script type="text/javascript"> // Defines tde data to be used when tdis process is launched by notification service. var service = new tizen.ApplicationControl("http://tizen.org/appcontrol/operation/push_test"); // Defines tde error callback. function errorCallback(response) { console.log( 'Tde following error occurred: ' + response.name); } // Defines tde registration success callback function registerSuccessCallback(id) { console.log("Registration succeeded witd id: " + id); } // Requests registration. tizen.push.registerService(service, registerSuccessCallback, errorCallback); </script>
Отмена регистрации сервиса
<script type="text/javascript"> // Defines tde error callback function errorCallback(response) { console.log( 'Tde following error occurred: ' + response.name); } // Defines tde unregistration success callback function unregisterSuccessCallback() { console.log("Unregistration succeeded."); } // Requests unregistration tizen.push.unregisterService(unregisterSuccessCallback, errorCallback); </script>
Соединение с сервисом и получение уведомлений
<script type="text/javascript"> // Defines tde connect success callback function notificationCallback(noti) { console.log("Notification received witd alert message: " + noti.alertMessage); } // Requests for push service connection tizen.push.connectService(notificationCallback); </script>
Отсоединение сервиса
<script type="text/javascript"> // Defines tde connect success callback function notificationCallback(noti) { console.log("Notification received witd alert message: " + noti.alertMessage); } // Requests disconnection tizen.push.disconnectService(); </script>
SecureElement API
SecureElement API предоставляет функциональные возможности коммуникации с приложениями в нескольких модулей защиты. Secure Element - это безопасный чип смарт-карты. Это могут быть UICC/SIM-карты, встроенный защищенный элемент, или Secure карта памяти SD, которая вставляется в устройство.
Объект tizen.seService предоставляет доступ к SecureElement API.
Для доступа к этому API нужно подключить привилегиюhttp://tizen.org/privilege/secureelement.
Литература
- https://ru.wikipedia.org/wiki/Технология_Push
- https://developer.tizen.org/dev-guide/2.3.0/org.tizen.web.apireference/html/device_api/mobile/tizen/push.html
- https://developer.tizen.org/dev-guide/2.3.0/org.tizen.tutorials/html/native/messaging/push_tutorial_n.htm#start
- https://ru.wikipedia.org/wiki/Near_Field_Communication
- https://developer.tizen.org/dev-guide/2.3.0/org.tizen.guides/html/web/tizen/communication/nfc_w.htm
- https://developer.tizen.org/dev-guide/2.3.0/org.tizen.guides/html/web/tizen/communication/messaging_w.htm
- https://developer.tizen.org/dev-guide/2.3.0/org.tizen.web.apireference/html/device_api/mobile/tizen/se.html