Главная » Разработка для Android » Использование Bluetooth для связи

0

API для установления связи через Bluetooth считается оберткой вокруг протокола RFCOMM (Radio Frequency Communication). RFCOMM, в свою очередь, поддерживает стандарт передачи данных RS232 поверх протокола L2CAP (Logical Link Control and Adaptation Protocol).

На практике все эти непонятные аббревиатуры можно назвать механиз- мом для открытия сетевых сокетов между двумя связанными Bluetooth- устройствами.

ПРИМЕЧАНИЕ

Прежде чем ваше приложение сможет устанавливать связь между устройствами, их адаптеры должны быть спарены (связаны). На момент написания этой книги (Android API level 7) не существовало способа вручную связать локальный Bluetooth-адаптер с удаленным устрой- ством.

Пользователь должен явным образом разрешить взаимодействие двух устройств — либо через экран настроек Bluetooth, либо через диало- говое окно в вашем приложении, когда вы пытаетесь создать сокет для связи между двумя неспаренными адаптерами.

Вы можете установить канал связи по протоколу RFCOMM для двуна- правленного обмена данными, используя классы:

BluetoothServerSocket — нужен для создания  ожидающего  сокета, чтобы установить  связь между двумя устройствами, при этом одно из устройств  выступает  в роли сервера, ожидая  и принимая запрос на соединение;

BluetoothSocket — применяется для создания нового клиентского соке- та, чтобы соединиться с ожидающим объектом BluetoothServerSocket; как только связь будет установлена,  оба сокета, на стороне клиента и сервера, могут быть использованы для передачи и приема потоков данных.

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

При подключении сокет BluetoothServerSocket возвращает  объект BluetoothSocket, который впоследствии используется серверным устрой- ством для передачи и приема данных. Этот BluetoothSocket, работающий на стороне сервера, может быть использован точно так же, как и клиентский сокет. Понятия «сервер» и «клиент» актуальны только на момент установ- ления связи. Далее они никак не влияют на способ передачи данных.

Источник: Майер P. Android 2 : программирование приложений для планшетных компьютеров и смартфонов : [пер. с англ. ] / Рето Майер. — М. : Эксмо, 2011. — 672 с. — (Мировой компьютерный бестселлер).

По теме:

  • Комментарии