Разработка Android Bluetooth — разница между классическим Bluetooth и BLE (низкое энергопотребление) Bluetooth
Разработка Android Bluetooth — разница между классическим Bluetooth и BLE (низкое энергопотребление) Bluetooth

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

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

Bluetooth в Android

Кстати о Bluetooth в Android,Вы можете услышать номера версий Bluetooth, оканчивающиеся на такие цифры, как Bluetooth 1.0, Bluetooth 2.0, Bluetooth 3.0 и Bluetooth 4.0.,Фактически,в новейших стандартах,Числовые номера версий больше не используются для различения версий Bluetooth.,Вместо этого есть два различия: классический Bluetooth и Bluetooth Low Energy (BLE).

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

Как сказано в таблице, Bluetooth сегодня фактически делится на три категории: одномодовые, двухрежимные и классические. Итак, наиболее официальные названия версий Bluetooth — одномодовый Bluetooth, двухрежимный Bluetooth и классический Bluetooth.

Среди них наиболее передовым является одномодовый Bluetooth, то есть Bluetooth Low Energy. Этот стандарт Bluetooth сильно отличается от классического Bluetooth. Сначала я даже подумывал присоединиться к лагерю WIFI, но из-за относительно благоприятных условий в лагере Bluetooth (например, чрезвычайно низких лицензионных сборов) он был включен в стандарт Bluetooth.

Итак, в чем разница между Bluetooth с низким энергопотреблением и классическим Bluetooth?

Если мы посмотрим только на методы связи между ними, можно сказать, что, помимо названия Bluetooth, их можно рассматривать как две вещи. Однако общие процессы этих двух процессов схожи, а именно:

  • Обнаружение устройств->сопряжение/привязкаоборудование->Установить соединение->передача данных

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

1. Откройте для себя устройство

Классический Bluetooth:классический Bluetoothоборудование发现其它классический Bluetoothоборудованиеиз方式是вызовBluetoothAdapterизstartDiscovery()метод。

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

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

Bluetooth с низким энергопотреблением:低功耗蓝牙中则有一个主оборудование(Central)和从оборудование(Peripheral,Также называется периферийными устройствами). Главное устройство в качестве первооткрывателя,вызов Обнаружение устройствизметод,Реализовано с помощью метода startLeScan() BluetoothAdapter. Ведомое устройство выступает в роли обнаруженной стороны.,отправить трансляцию,для открытия. такой же,Этот метод startLeScan() может обнаруживать только ведомые устройства Bluetooth с низким энергопотреблением.

Подведите итог:BluetoothAdapter.startDiscoveryНа большинстве мобильных телефонов можно найти как классический Bluetooth, так иBleиз,Но обратный вызов startDiscovery не может вернуть трансляцию Ble.,Значит устройство не может быть идентифицировано по трансляции,А эффективность сканирования startDiscovery Ble гораздо ниже, чем StartLeScan. Итак, в практическом применении,Или сканировать StartDiscovery и StartLeScan отдельно?,Первый сканирует традиционный Bluetooth,Последний сканирует Bluetooth Low Energy.

Уведомление:когда两种蓝牙оборудование被某оборудование(包括когда前изоборудование)сопряжение/привязканазад,Больше нельзя сканировать.

2. Сопряжение/привязка

Многие друзья не совсем понимают разницу между спариванием и привязкой, или это просто одно и то же. Ну, строго говоря, между спариванием и связыванием есть разница, а это значит, что они не относятся к одному и тому же. Однако разница между ними неясна и ее трудно объяснить. Текущее понимание робота JACK заключается в том, что спаривание устанавливает соответствующие отношения между ними, в то время как связывание сохраняет и укрепляет эти отношения. Давайте пока понимаем это так.

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

3. Установите соединение

Они очень разные в том, как они устанавливают связи.

——Советы по Bluetooth—— В устройстве Bluetooth есть физический адрес, который мы также называем MAC-адресом Bluetooth. Этот адрес уникален, как и IP-адрес в нашей сети. В то же время существует нечто, называемое UUID, под которым можно понимать номер порта в IP-адресе. Точно так же, как вы знаете IP-адрес и номер порта, вы знаете, как подключиться к целевому сетевому серверу. Если вы знаете MAC-адрес и UUID устройства Bluetooth, вы можете определить, какое это устройство Bluetooth. . уникальный идентификатор.

Классический Bluetooth:классический BluetoothУстановить Метод соединения на самом деле представляет собой установление сокет-соединения. Просто здесь используется не Socket напрямую, а BluetoothSocket. Способ получения BluetoothSocket также очень прост. Используйте BluetoothDevice, найденный с помощью поиска, и вызовите его метод createRfcommSocketToServiceRecord(UUID). Наконец, используйте полученный BluetoothDevice для вызова его метода Connect(), чтобы установить канал соединения между классическими устройствами Bluetooth.

Bluetooth с низким энергопотреблением:低功耗蓝牙则用了一种看起来比较怪异из方式Установить соединение。

——Некоторые основные понятия о BLE—— Generic Attribute Profile (GATT) Общая спецификация профиля для чтения и записи небольших данных атрибутного типа через соединение BLE. Все текущие профили приложений BLE основаны на GATT. Attribute Protocol (ATT) ГАТТ основано на ДТО Протокол. ATT провела специальную оптимизацию для устройств BLE, в частности, используя как можно меньше данных в процессе передачи. Каждое свойство имеет уникальный UUID, и свойства будут представлены характеристиками. and Передается в виде услуг. Characteristic Под характеристикой можно понимать тип данных, который включает в себя значение и от 0 до нескольких описаний (дескриптор) вторичного значения. Descriptor Описание характеристики, например область применения, единица измерения и т. д. Service Характерный сборник. Например, услуга под названием «Сердце Rate Монитор», который может содержать несколько характеристик, которые могут содержать rate измерение» «Характеристика».

Вот пример. Например, вам нужно использовать смартфон в качестве главного устройства для подключения к смарт-браслету в качестве подчиненного устройства. Затем смартфон в качестве главного устройства фактически является клиентом в процессе подключения, а смарт-браслет. подчиненным устройством в этом процессе является сервер. Здесь необходимо четко различать главное устройство и подчиненное устройство клиента и сервера.

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

Конкретная последовательность установления соединения GATT заключается в том, чтобы сначала получить BluetoothDevice соответствующего ведомого устройства BLE с помощью метода getRemoteDevice(address) BluetoothAdapter, где адресом является MAC-адрес целевого устройства Bluetooth. Затем получите подключение устройства с помощью метода ConnectGatt(this, false, mGattCallback) этого BluetoothDevice.

Соединение в это время можно только отслеживать, то есть можно получать данные, транслируемые текущим ведомым устройством BLE.

4. Передача данных

Классический Bluetooth:когда Установить После соединения вы можете напрямую использовать метод getOutputStream() BluetoothSocket для получения данных, которые необходимо отправить при записи в выходной поток. Чтобы прочитать отправленные обратно данные, вызовите метод getInputStream() BluetoothSocket, чтобы получить входной поток для чтения. Это почти то же самое, что и связь через сокеты в Java.

Bluetooth с низким энергопотреблением:想要实现主оборудование对从оборудованиеиз数据发送,Вам необходимо напрямую считать полученную характеристику ведомого устройства.,Характеристика находится на уровне ниже Сервиса.,Итак, порядок действий такой:

(1) Получите соответствующий BluetoothGattService из соответствующего Service_UUID устройства через BLE. Метод получения: используйте объект BluetoothGatt, возвращаемый методом connectGatt(this, false, mGattCallback) BluetoothDevice, и вызовите метод BluetoothGatt getService(Service_UUID). для получения соответствующего BluetoothGattService;

(2) Вызовите BluetoothGattService и запишите соответствующий UUID характеристики, чтобы получить соответствующую BluetoothGattCharacteristic. Метод получения: вызов метода getCharacteristic(Characteristic_UUID) BluetoothGattService для получения;

(3) Установите значение команды, которую необходимо отправить, и вызовите метод BluetoothGattCharacteristic setValue(value), чтобы установить его, где значение обычно равно byte[];

(4) Наконец, используйте метод записи writeCharacteristic(TxChar) BluetoothGatt для завершения отправки команды.

Как видите, шаги по реализации передачи данных BLE довольно сложны. Вот простое концептуальное понимание. Если вы хотите получить возвращаемое значение ведомого устройства BLE, вам также необходимо установить уведомление, а затем вызвать функцию readCharacteristic BluetoothGatt. (характеристика) Здесь не будет подробно объясняться метод чтения данных. Он будет объяснен позже, когда будет подробно объяснена связь BLE.

Выбор Bluetooth

Поскольку существуют классический Bluetooth и Bluetooth с низким энергопотреблением, какой выбор мы делаем при разработке продуктов Интернета вещей и интеллектуальных аппаратных продуктов?

Классический Bluetooth:蓝牙最初из设计意图,Это воспроизведение музыки на телефоне. Версия Bluetooth ниже 3.0,все называются“классический Bluetooth”。Высокое энергопотребление、Передача больших объемов данных、Дальность передачи составляет всего 10 метров.

Bluetooth с низким энергопотреблением:то естьBLE,Обычно называется Bluetooth 4.0 (и выше). Низкое энергопотребление,Небольшой объем данных,Расстояние около 50 метров.

Для передачи звука используйте классический Bluetooth:

нравитьсяBluetooth-гарнитуры, Bluetooth-колонки。蓝牙设计из时候то есть为了传声音из,так этоЛучший выбор для передачи звука на близком расстоянии

Питание от аккумулятора, подключение к мобильному приложению, с использованием BLE:

нравитьсяОбщий замок для велосипеда, интеллектуальный замок Bluetooth, устройство защиты от потери Bluetooth, позиционирование Bluetooth в помещении,в настоящее времяСамый экономичный способ связи между мобильными телефонами и интеллектуальным оборудованием.。Расстояние по прямой линии ок.50рис,Одной батарейки типа АА хватает на один год.,Модуль передачи стоит 10 юаней.,Это гораздо практичнее, чем протоколы передачи больших данных, такие как WIFI и 4G.

Если вам нужны и голос, и данные, используйте двухрежимный Bluetooth: Двойной режим Bluetooth,то естьПоддерживает как классический Bluetooth Audio, так и Bluetooth Low Energy.

Например, пульт дистанционного управления смарт-телевизором.、Наушники с шумоподавлением и т. д.。很多智能电视配из遥控器带Для распознавания голоса требуется классический Bluetoothпередавать звук

Для передачи больших объемов данных используйте классический Bluetooth: Например, в некоторых сценариях промышленного управления, если используется основной элемент управления Android или Linux и подключено внешнее устройство дистанционного управления Bluetooth, протокол SPP в классическом Bluetooth можно использовать в качестве беспроводного последовательного порта. Скорость намного выше, чем передача BLE.

Большое расстояние, Bluetooth не требуется. Для Bluetooth не подходят те, у которых фиксированное питание, те, которые не учитывают энергопотребление, те, которым необходимо передавать данные на расстояния, превышающие десятки метров, и те, которым необходимо передавать высокоскоростные данные. На больших расстояниях можно использовать 2G, 4G и NB-IOT, а для больших объемов данных можно использовать WIFI.

Ссылка на статью:Простой сравнительный анализ классического Bluetooth и Bluetooth с низким энергопотреблением в Android

Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/149168.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose