Шаг 3. Bluetooth

Шаг 3. Bluetooth

Сообщение EgorovAD MEPhI » 26 ноя 2012, 20:15

Возможности работы с Bluetooth:
    • поиск других Bluetooth устройств;
    • получение списка сопряженных устройств;
    • установление RFCOMM соединения (протокол, эмулирующий последовательные порты);
    • подключение к другим устройствам;
    • передача данных;
    • управление несколькими подключениями.
Перед тем как использовать Bluetooth, не будет лишним проверить его наличие на устройстве.

Код: выделить все
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (mBluetoothAdapter == null) {
   // На телефоне нет поддержки Bluetooth
}


Обмен данных между устройствами Bluetooth осуществляется через специальные сокеты BluetoothSocket и BluetoothServerSocket. Работа с ними похожа на работу с обычными linux сокетами.

Для передачи данных и установления соединения понадобится разрешение BLUETOOTH. Для того чтобы управлять настройками и инициировать поиск устройств, понадобится разрешение BLUETOOTH_ADMIN. Причем, если разработчик указывает разрешение BLUETOOTH_ADMIN, то необходимо будет указать и разрешение BLUETOOTH.
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49

Bluetooth sample

Сообщение EgorovAD MEPhI » 19 фев 2013, 09:07

Разработка приложений с использованием Bluetooth является весьма непростой задачей. Для облегчения подобной разработки на сайте разработчика андроид приложений представлено подробное описание всех классов и методов для работы с bluetooth.
Кроме того, на этом же сайте(и во вложение к данному сообщению) можно найти пример приложения для работы с bluetooth телефона.

Прежде, чем запустить данное приложение на телефоне, необходимо отредактировать исходный текст программы, т.к. имя устройства, к которому будет подключатся телефон, задается жестко в тексте программы.
1) Откройте файл DiscoverDevice.java, который принадлежит пакету com.sample.bluetooth.service.
2) В классе DiscoverDevice отредактируйте переменную REMOTE_DEVICE_NAME, заменив её значение на имя конкретного устройства, к которому планируется подключение.
Важно! Изменить значение этой переменной можно только в этом месте, т.к. перед ней прописано ключевое слово final.
3) Скомпилируйте программу и загрузите её на телефон.

Все! Вы можете передавать команды в виде байт для взаимодействия с другими объектами, у которых есть bluetooth-приемник.

Задание:
Модифицируйте программу таким образом, что бы была возможность задавать имя устройства вручную из списка доступных устройств, или брать его имя из текстовой строки введенной пользователем.
Вложения
BluetoothSample.rar
Android-программа для работы bluetooth телефона
(148.38 KiB) Скачиваний: 1201
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49

Bluetooth sample, структура

Сообщение EgorovAD MEPhI » 02 мар 2013, 13:21

Структура у проекта приложения следующая:

Папка src содержит исходный код основных функциональных компонент (java-классов) приложения.
    В пакете com.sample.bluetooth.service содержаться файлы исходных кодов сервисов приложения.
    Файлы начинающиеся с буквы I (IDiscoverDevice и т.д.) представляют собой интерфейсы, т.е. описания, а не конкретную реализацию.
    В аналогичных файлах без префикса I содержится непосредственно реализация классов.

      Класс RemoteService отвечает за непосредственное функционирование частей actvity. Установка соединения при нажатии на кнопку, создание объектов для взаимодействия с низкоуровневой передачей и т.п.

      Класс RemoteEngine отвечает за работу приемника и передатчика bluetooth. В том числе отсылка сообщений через bluetooth методом public boolean sendCommand(byte command).

      Класс DiscoverDevice отвечает за поиск и подключения(сопряжения) с другими устройствами.

    В пакете com.sample.bluetooth.ui содержаться файлы описания функциональности каждого "окна" приложения.

    В пакете com.sample.bluetooth.ui содержится класс, который используется для создания логов работы программы.

Папка gen содержит файлы, которые генерирует Java. Их трогать нельзя.

Папка bin содержит файлы, которые представляют собой результат компиляции приложения из исходного кода в исполняемое приложение android.
    Основным файлом в этой папке, является файл с расширением .apk . Файлы такого типа можно непосредственно перенести на телефон с ос-android и выполнить.

Папка res содержит ресурсные файлы, которые использует приложение.
    В res/layout содержатся файлы, которые отображаю графический интерфейс приложения. Для каждого "окна" приложения - свой файл. В данном случае в папке только один файл main_layout.xml, в котором изображен дизайн единственного окна приложения.

    В res/values содержится файл strings.xml, в котором можно поменять значения некоторых ключевых параметров для программы. Например: название приложения.

Из оставшихся файлов в проекте, непосредственный интерес представляет файл AndroidManifest.xml.
Обратите внимание на прописанные разрешения:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> .
EgorovAD MEPhI
Администратор
 
Сообщений: 155
Зарегистрирован: 04 ноя 2011, 11:49


Вернуться в 4. Использование периферии

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4