Использование Bluetooth в J2ME приложениях. (JSR-82) - Часть 1. Знакомство с технологией Bluetooth и Java API for Bluetooth


Этот документ познакомит Вас с возможностями JSR-82 Java API для Bluetooth. JSR-82 - это дополнительный J2ME пакет, реализующий Java Community Process, который предоставляет стандартный API для Bluetooth соединения. Для разработки и тестирования всех приведенных ниже листингов использовался телефон Sony Ericsson P900, однако ни что не мешает вам вести разработку для других устройств.

Что Вам понадобится для начала

Чтобы начать разрабатывать Bluetooth приложения, Вам понадобятся следующие инструменты:

  • Java 2 Standard Edition (J2SE) SDK 1.4.1 or later
  • Java 2 Runtime Environment (JRE) Standard Edition 1.4
  • Sun Wireless Toolkit version 2.0 or later

Введение

Этот документ описывает использование Java API for Bluetooth (JSR-82). Статья разделена на три части: описание Bluetooth технологии, обзор Java API for Bluetooth, использование Java API for Bluetooth.

Примечание: Обратите внимание, Java Bluetooth API не поддерживались некоторыми телефонами, например первыми телефонами Sony Ericson P900 (Organizer SW version R1*). Возможно Вам придется обновить прошивку.

Стек Bluetooth протоколов

Bluetooth это дешевая технология, позволяющая электронным устройствам обмениваться информацией посредствам радиоканала. Радиус действия Bluetooth передатчиков, как правило, не превышает 15-ти метров. Для связи используется частота 2.45 GHz. В настоящее время доступна технология Bluetooth версии 1.1, которая включает в себя технологию радио связи, набор программ и профилей.

Разработчиком Bluetooth является Bluetooth Special Interest Group (SIG).

Стек протоколов

Стек Bluetooth протоколов состоит из двух частей: контроллера, который, как правило, имеет аппаратную реализацию, и on-host стека с которым, собственно, и взаимодействуют приложения. На рисунке показаны Bluetooth протоколы.


Основное внимание в этой статье уделено верхним уровням стека Программных протоколов. Он состоит из следующих уровней:

  • Host Controller Interface (HCI) - Это самый низкий уровень стека Программных протоколов. Он непосредственно взаимодействует с Bluetooth контроллером.
  • Logical Link Control and Adaptation Layer (L2CAP) - На этом уровне происходит сегментация и сборка пакетов, мультиплексирование протокола, обеспечивается качество управляющей информации.
  • Service Discovery Protocols (SDP) - этот протокол используется для поиска доступных Bluetooth устройств.
  • RFCOMM - Обеспечивает последовательную передачу данных через Bluetooth, другими словами, ведет себя аналогично обычному последовательному порту (COM).
  • Object Exchange Protocol - протокол позаимствован у Infrared Data Association (IrDA). Он позволяет легко обмениваться такими объектами, как vCard и vCalendar, выполнять синхронизацию данных.

Профили

Чтобы обеспечить совместимость между устройствами, Bluetooth профили определяют возможность некого нейтрального устройства. Сам по себе терминпрофиль означает набор функций и возможностей, которые использует Bluetooth в качестве механизма транспортировки. Профили гарантируют возможность обмена информацией между устройствами разных производителей. Bluetooth SIG определяет несколько стандартных профилей:

  • Generic Access Profile (GAP) - определяет использование стека протоколов нижнего уровня, включая функции управления устройством. Все реализации Bluetooth осуществляют GAP.
  • Service Discover Application Profile (SDAP) - описывает специфические приложения и использование SDP, доступность и аспекты пользовательского интерфейса процесса поиска других устройств, использование L2CAP и низких слоев для обеспечения режима поиска.
  • Serial Port Profile (SPP) - определяет для RFCOMM, L2CAP, SDP, и других слоев низкого уровня, требования взаимодействия и возможности для эмуляции последовательного кабеля.
  • Dial-up Networking Profile (DUNP) - определяет требования обеспечения взаимодействия для GAP и SPP, а также для телефонных звонков, контролирует возможность устройства работать в режиме телефона.
  • Generic Object Exchange Profile (GOEP) - определяет для OBEX, SPP и GAP требования к взаимодействию и способности OBEX для передачи файлов, размещения объектов и синхронизации.
  • Object Push Profile (OPP) - определяет требования к пользовательскому интерфейсу, использование OBEX, SDP и способности размещать объекты для контента в форматах vCard, vCalendar, vNote и vMessage.
  • File Transfer Profile (FTP) - определяет требования к пользовательскому интерфейсу, а также взаимодействие и использование GOEP, OBEX и SDP.
  • Synchronization Profile (SP) - определяет требования к пользовательскому интерфейсу, а также взаимодействие и использование GOEP, OBEX и SDP в режиме, аналогичном IrMC синхронизации.

Sony Ericsson P900 поддерживает следующие Bluetooth профили:

  • Generic Access Profil
  • Serial Port Profile
  • Dialup Networking Pr
  • Generic Object Excha
  • Object Push Profile
  • Headset Profile
  • File Transfer Profile

Bluetooth устройства и сети

Bluetooth устройства используют уникальные IEEE 802 48-bit адреса. Когда два или более Bluetooth устройства соединяются, они образуют структуру, известную под названием Piconet. Это динамическая сеть, в которой одно из устройств выступает в роли мастера (Master), а все другие (до семи устройств) в роли клиентов(Slave). Клиенты могут участвовать в различных Piconet сетях. Если два мастера соединяются, они образуют перекрывающийся Piconet, известный как Scatternet. На представленном рисунке Piconet мастер одной сети подключился к клиенту другой Piconet сети.

Bluetooth поддерживает один канал данных и три (максимум) голосовых канала. Максимальная скорость передачи данных составляет 720 килобит в секунду. Теоретически, радиус действия Bluetooth устройств составляет около 100 метров. Радиус Sony Ericsson P900/P908 - примерно 10 метров.

Более подробную информацию о Bluetooth профилях можно найти на сайтеhttp://www.bluetooth.org/

Java API for Bluetooth

Системные требования

Все низкоуровневые реализации Blutooth должны удовлетворять набору требований, который сводится к поддержке ряда стандартных профилей и протоколов:

Уровни Bluetooth version 1.1Профили
RFCOMM
Service Discovery Protocol
L2CAP
Generic Access Profile
Service Discovery Application Profile
Serial Port Profile

Кроме того, Bluetooth устройства должны поддерживать так называемый Bluetooth Control Center (BCC), который позволяет проводить настройку локальных параметров Bluetooth устройства. BCC не является частью Bluetooth Java API, но Bluetooth Java API использует его для установки рабочего уровня и настройки параметров безопасности.

Java API For Bluetooth - организация и пакеты

Java API for Bluetooth представляет собой дополнительный пакет для Java Community Process (JSR-82). Этот дополнительный пакет предоставляет разработчику общий API для работы с Bluetooth. На следующем рисунке показано отношение между Java API for Bluetooth и платформой J2ME, использующей Mobile Information Device Profile (MIDP) и Connected Limited Device Configuration (CLDC).

Как видите, внизу у нас расположились hardware, operating system и Bluetooth stack; выше находятся конфигурация (в нашем случае это CLDC) и профиль (MIDP), а также дополнительные пакеты. В самом верху располагается собственно MIDP приложение (MIDlet).

Таблица 2 - Java APIs for Bluetooth

ПакетОписание
javax.microedition.ioЯдро CLDC Generic Connection Framework.
javax.bluetoothЯдро Bluetooth API, включающее в себя Discovery, L2CAP, а также интерфейсы и классы устройства и данных.
javax.obexЯдро Object Exchange (OBEX) API. Этот пакет является дополнительным и поддерживается не всеми устройствами.

В рамках Java APIs for Bluetooth определяется новый протокол соединения для GCF и Object Exchange (OBEX) API на основе спецификации IrDA Data Association.

Примечание: В Sony Ericsson P900/P908 реализованна урезанная версия пакета javax.bluetooth.*, а javax.obex.* - вообще не поддерживается.

Анатомия MIDlet-ов, использующих JSR 82

На следующем рисунке показаны все интерфейсы и классы, которые можно использовать в JSR-82 мидлете. Более подробно они будут рассмотрены ниже.

Использование Java APIs for Bluetooth

Использование Java APIs for Bluetooth состоит из нескольких отдельных этапов:

  • Инициализация Bluetooth стека.
  • Поиск устройств.
  • Поиск сервисов.
  • Открытие соединения.
  • Закрытие соединения.
  • Ожидание соединения.
  • Инициализация соединения.
  • Выполнение операций ввода-вывода.

На приведенном ниже рисунке схемотично показано приложение, использующее Bluetooth.

Bluetooth Control Center

Инициализация Bluetooth, как правило, влечет за собой установку параметров. В частности необходимо задать имя устройства, настройки безопасности, включить или выключить Bluetooth радио канал. Все это можно сделать с помощью Bluetooth Control Center (BCC), который представляет собой набор панелей управления, которые являются основным механизмом управления параметрами Bluetooth устройства.

С помощью Bluetooth Control Center Вы можете задать несколько дополнительных настроек, в частности имя, которое будут видеть другие устройства, или режим доступности другим устройствам. Вы также можете выполнить поиск других Bluetooth устройств, задать условия соединения, соединиться и отключиться от устройства.


Эта статья является переводом документа Developing Applications with the Java APIs for Bluetooth™ (JSR-82), найденного на сайтеhttp://developer.sonyericsson.com
Перевод:aRix.




Наши соцсети

Подписаться Facebook Подписаться Вконтакте Подписаться Twitter Подписаться Google Подписаться Telegram

Популярное

Ссылки

Новости [1] [2] [3]... Android/ iOS/ J2ME[1] [2] [3]) Android / Архив

Рейтинг@Mail.ru Яндекс.Метрика
MobiLab.ru © 2005-2018
При использовании материалов сайта ссылка на www.mobilab.ru обязательна