LLLit: Изучение и практика программирования

Android - подключение к модулю Bluetooth

Мне нужно разработать приложение для Android для подключения к модулю Bluetooth, подключенному к плате. Моя цель - отправлять и получать данные на эту доску.

В настоящее время я могу включить Bluetooth на своем телефоне для сопряжения с модулем Bluetooth, но я не знаю, как подключаться и отправлять / получать данные на этот модуль.

Большинство примеров объясняют, как создать сервер и клиент для связи через сокеты. Подходит ли мне этот способ? Как описано здесь: https://developer.android.com/guide/topics/connectivity/bluetooth.html#java

04.04.2019

  • Подходит ли мне этот способ? - Это единственный способ работы. Модуль bluetooth, вероятно, является сервером, ожидающим подключения. Затем Android должен будет создать соединение с другим устройством в качестве клиента, см. developer.android.com/guide/topics/connectivity/. 04.04.2019
  • Какой у вас модуль Bluetooth? Тот, который поддерживает BLE (Bluetooth 4.0 или выше, например HC-08) или более старый для Bluetooth 2/3 (например, HC-05/06)? 04.04.2019
  • Я спрашиваю, потому что требовались разные протоколы: BLE использует характеристики GATT, старые используют SPP. 04.04.2019
  • У меня есть модуль Bluetooth SPP, теперь я могу отправлять и получать данные. Получать данные. 04.04.2019

Ответы:


1

Ниже приводится метод:

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

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

  • после этого вы можете отправлять данные на устройство Bluetooth и с него.

Здесь прилагается пример для работы с BLE, созданный Nordic Semiconductor. Нажмите здесь

04.04.2019

2

Сделайте это, как в примере: https://developer.android.com/guide/topics/connectivity/bluetooth.html#example_1

Обратите внимание, что вам, вероятно, потребуется знать, какой сервис / профиль предоставляет модуль. Часто общие модули / устройства используют профиль последовательного порта (SPP).

Вы используете createInsecureRfcommSocketToServiceRecord() или _ 2_ для подключения.

Какой UUID вам нужен, зависит от фактического сервиса, предоставляемого модулем. Для SPP см., Например, Как найти UUID устройства Bluetooth с последовательным портом? < / а>:

Короткий 16-битный UUID для SPP -

0x1101

полный UUID

"00001101-0000-1000-8000-00805f9b34fb"

Итак, на Android вы бы использовали

final UUID SPP_SERVICE_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");

final BluetoothSocket socket = device.createRfcommSocketToServiceRecord( SPP_SERVICE_UUID );

socket.connect();

final InputStream is = socket.getInputStream();
final OutputStream os = socket.getOutputStream();

// Send data to output stream and/or receive data from input stream
// ...

socket.close(); // Disconnect
04.04.2019
Новые материалы

Обзор кода — Миссия невыполнима?
Обзор кода — миссия невыполнима? 3 расширения VsCode, которые помогут вам ориентироваться в коде! Как новый пользователь Visual Studio Code, мне иногда трудно перемещаться по открывающему и..

BrightFuture (реализация интерфейса Java Future на Golang)
Отказ от ответственности: это моя первая статья на medium.com. Я постарался сделать это по-настоящему простым, и люди, находящиеся на любом этапе своей учебной лестницы, могут извлечь..

Серия блогов по ускорению вывода на основе глубокого обучения — Часть 2 — Аппаратное обеспечение
Глубокие нейронные сети стали обычной практикой во многих приложениях машинного обучения. Их способность достигать человеческой и даже сверхчеловеческой точности сделала их важной вехой в истории..

Технологии для нетехнологов 6: Простое объяснение языков программирования
Одним словом, программирование — это автоматизация, но в более широком смысле — это способ «поручить компьютеру выполнять различные задачи». Инструкции отправляются кодом, и этот код может быть..

CS373 Summer 2018: Миранда Фуленчек
CS373 Summer 2018: Миранда Фуленчек Неделя 1: 4 июня — 10 июня Что вы делали на прошлой неделе? Занятия начались на этой неделе, поэтому большую часть времени я потратил на..

Как развивается смешанно-целочисленное программирование, часть 7
Унифицированная техника раннего завершения для первично-двойственных алгоритмов в смешанно-целочисленном коническом программировании (arXiv) Автор : Ювэнь Чэнь , Кэтрин Нин , Поль Гулар..

Как научить модель Keras распознавать текст переменной длины
Я некоторое время играл с официальным примером Keras image_ocr.py и хочу поделиться своими выводами в этом посте. В официальном примере выполняется только обучение модели, но отсутствует..