Меню

Настройки на блютуз на андроиде планшете



Настройки Bluetooth на смартфоне Андроид

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

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

Информация по настройкам собрана по ОС Андроид 9. Они незначительно отличаются от старых версий

Общие настройки Bluetooth

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

Запускайте обнаружение доступных устройств.

После поиска вам будет предложено выбрать и добавить его.

В разделе “Доступные устройства” появиться активное соединение.

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

В разделе “Ранее подключенные устройства” будут сохраняться все, которые ранее синхронизировались со смартфоном.

Последний раздел “Настройки подключения” поможет подключить различное оборудование.

Bluetooth

Этот пункт ведет к обычной синхронизации двух и более устройств. Его рассмотрели выше.

Трансляция

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

Печать

Используя этот раздел есть возможность настроить печать данных со смартфона на вашем принтере.

Через Службу печати добавляете найденный принтер с поддержкой беспроводной связи или выбираете службу самостоятельно, которая поможет синхронизировать два устройства.

Полученные файлы

Здесь вы увидите все скачанные файлы посредством Bluetooth связи

Chromebook

Эта последняя функция для связи смартфона с устройством Chromebook. На мой взгляд, эта функция не популярна и не будем останавливаться на ней.

Настройки Bluetooth в режиме разработчика

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

1. Показывать блютуз-устройства без названий. Эта функция говорит сама за себя. Если отключим названия устройств, то будем видеть только их MAC адреса.


2. Версия блютуз AVRCP – управление различными устройствами (телевизор дом.кинотеатр и другие). Эта функция позволяет выбрать версию от 1.3 до 1.6.

3. Запуск аудиокодека через блютуз. Позволяет выбрать определенный аудиокодек из списка.

4. Выбор частоты дискретизации для передачи по блютуз.

5. Выбрать глубину кодирования звука.

6. Режим аудиоканала (моно или стерео)

7. Выбор качества воспроизведения

8. Максимально количество подключенных устройств.

Вот столько смартфон имеет настроек блютуз на Андроиде. Возможно, они будут дополняться и меняться с дальнейшими версиями ОС.

Источник

Как использовать Bluetooth на планшете Android — манекены — Бизнес 2020

Table of Contents:

Если условия Wi-Fi и мобильных данных не оставляют вас полностью одурманиваемыми, вот еще один термин, о котором вы должны знать используйте планшет Android. Это Bluetooth , и это не имеет ничего общего с цветной голубой или зубной гигиеной.

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

Общие сведения о Bluetooth

Если вы не знакомы с тем, как работает Bluetooth, рассмотрите пятиступенчатый обзор процесса:

Включите беспроводное радио Bluetooth на обоих вещах.

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

На планшете выберите периферийную гизмо из списка устройств Bluetooth.

При необходимости проверьте подключение на периферийном устройстве.

Например, вас могут попросить ввести код или нажать кнопку.

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

Устройства Bluetooth отмечены логотипом Bluetooth. Это ваша уверенность в том, что gizmo может работать с другими устройствами Bluetooth.

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

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

Активация Bluetooth

Вы должны включить Bluetooth-планшет планшета, прежде чем сможете пользоваться любыми Bluetooth-периферийными устройствами. Вот как активировать Bluetooth на планшете Android:

Откройте приложение «Настройки».

На некоторых планшетах Samsung откройте вкладку «Подключения».

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

Сдвиньте значок вправо для активации.

Когда Bluetooth включен, появляется значок состояния Bluetooth. Он использует логотип Bluetooth.

Чтобы отключить Bluetooth, повторите эти шаги, но переместите главный регулятор влево, в положение «Выкл.».

Вы также найдете переключатель Bluetooth в быстрых действиях планшета.

Сопряжение с периферийным устройством Bluetooth

Чтобы соединение Bluetooth между вашим планшетом и некоторыми другими функциями, например клавиатура Bluetooth, выполните следующие действия:

Убедитесь, что Bluetooth включен.

Включите Bluetooth gizmo или убедитесь, что его радио Bluetooth включен.

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

На планшете Android коснитесь значка «Приложения» на главном экране и откройте приложение «Настройки».

На некоторых планшетах Samsung элемент Bluetooth находится на вкладке «Подключения» в приложении «Настройки».

Вы видите экран Bluetooth. Он показывает любые устройства, уже соединенные с планшетом. Также в списке представлены любые другие Bluetooth-устройства, доступные для сопряжения.

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

Например, некоторые Bluetooth-вещицы имеют маленькую кнопку для нажатия, что делает устройство видимым для других Bluetooth-штучек.

После того, как устройство Bluetooth будет видимым, оно должно появиться на экране Bluetooth. Если это не так, нажмите кнопку «Поиск устройств». На некоторых планшетах кнопка может быть помечена как Scan.

Выберите устройство Bluetooth из списка.

При необходимости введите код доступа устройства или иным образом подтвердите соединение.

Не все устройства имеют пароль. При появлении запроса подтвердите код доступа на планшете Android или другом устройстве.

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

Подключенные устройства отображаются в окне настроек Bluetooth под заголовком «Сопряженные устройства».

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

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

Читайте также:  Обход аккаунта гугл самсунг g531h после сброса настроек

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

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

Источник

Как настроить блютуз на планшете

Есть ли на планшете блютуз? Модуль блютуз присутствует практически на всех современных планшетах. Так, нет ни одного iPad или нового Самсунга без блютуза. Тем не менее, на рынке присутствует некоторое число устройств без этого модуля.

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

Использование блютуза весьма обширно:

  • для прямой передачи данных между устройствами (телефоны, принтеры, планшеты, компьютеры);
  • для соединения с сетями и серверами (домашние, интернет, ftp);
  • для совместной работы с системами навигации;
  • для передачи потоковой информации на гаджеты (очки виртуальной реальности, гарнитура);
  • прочее.

Включение Bluetooth

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

Проще всего дела обстоят с устройствами на Android и iOS. Так в iPAD нужно просто зайти в Настройки, перейти в раздел «Основные» и включить Bluetooth или передвинуть соответствующий ползунок.

В девайсах на Android такая же процедура. Нужно зайти в Параметры, где выбрать соответствующий пункт. В версиях Android 4.0 и выше Блютуз можно включать прямо с панели уведомления, нажав на пиктограмму с символом «Блютуз».

Немного тяжелее в планшетах под управлением Windows. Вообще-то значок Bluetooth должен находится на панели задач, но, если его нет, возможно, он отключён или нет соответствующих драйверов. В первом случае нужно зайти в Диспетчер устройств через Панель Управления и включить устройство. Если нет драйверов, то устройство будет неопознанным. В таком случае необходимо скачать соответствующие драйвера. Если вы не знаете, какой у вас адаптер, то придётся скачать ещё и программу Everest или подобную ей, которая специализируется на распознавании устройств.

Как подключить блютуз к планшету на Windows

  1. При подключении адаптера к планшету, Windows должен автоматически распознать устройство и предложить установить драйверы. Это касается брендовых адаптеров. Для блютуз адаптеров китайского производства будет необходимо установить драйверы вручную или установить специальную программу для блютуз. Большинство программ автоматически распознают устройства практически всех производителей.
  2. Для того, чтобы установить драйверы на планшет с диска, будет нужно проделать несколько манипуляций. Проще всего открыть доступ в локальной сети к дисководу на компьютере. Но можно сделать и по-другому. Сделать образ диска, скачать его на планшет и запустить в виртуальном приводе (Daemon Tools, например). Если вы знаете точно модель своего блютуз адаптера, то можно скачать самые свежие драйвера прямо с сайта производителя.
  3. В большинстве случаев устанавливается не один драйвер, а несколько – для разных сервисов. Рекомендуется произвести повторную установку драйверов, чтобы наверняка все службы и сервисы распознали устройство.

Как настроить блютуз на планшете на Android

Установка адаптера Блютуз на Android самая тяжёлая, если всё делать вручную. Гораздо проще перепрошить планшет на кастомную прошивку, где уже всё настроено. Как правило, разработчики предустанавливают все драйвера и блютуз работает сразу же, после подключения. Но давайте рассмотрим, как делать все вручную (без перепрошивки) на примере планшетов с процессорами Telechips (планшеты RoverPAD) или ARM Cortex-A8 (большинство среднебюджетных Самсунгов).

    1. Первым делом нужны рут-права, если у вас их ещё нет. Для этого ставим z4root и проверяем есть ли они, перезагрузив свой гаджет.
    2. Теперь скачайте и установите для дальнейших действий autostart, Root Explorer (разрешите root права, при первом запуске) и нужные аттачи под свой процессор.
    3. Нужно установить на планшет любой терминал. Например, Connect Boot и скопировать из разархивированных аттачей файлы.
    4. В папку system/lib/modules положить файл btusb и поставить права 777 или 775 – без разницы.
    5. Создать папку с правами 775 /data/opt, где создать файл под названием autostart.sh. Откройте сам файл и напишите следующий код. Права у файла, естественно, должны быть 775.

  1. Перезагрузите свой планшет и зайдите в терминал. Нужно проверить загруженность btusb (модуля). Для этого пропишите команду «Ismod». Среди всех строчек должна быть надпись btusb с разными цифрами. Если есть, то всё в порядке. Идём дальше.
  2. Установите Quicktoth для того, чтобы можно было конфигурировать блютуз-соединения и подключайте любой блютуз для планшета (подойдёт практически любой «свисток»). Ждите около 50 секунд для обнаружения устройства.

Неполадки

Рассмотрим наиболее частые причины, из-за которых не работает блютуз на планшете:

  1. Некоторые внешние адаптеры имеют кнопку вкл/выкл или «Connect». Также возможно наличие севшего аккумулятора или батареек.
  2. Устройство может не распознаться сразу. Попробуйте вынуть его и установить заново.
  3. Не все планшеты подают соответствующее питание на концентраторы USB.

Полезные программы для блютуза

Далее вам представлены найболее популярные программ для настройки Bluetooth.

Bluevibe

  • Платформа: Android
  • Стоимость: бесплатно

C помощью этой программы можно выходить в интернет через другие девайсы за счёт последних. Также можно просто подключиться к другому гаджету для навигации по его файловой системе.

GamePro

  • Платформа: Android
  • Стоимость: бесплатно
  • Совместимость: полная с MSI и ZeeMote.

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

BT Reader

  • Платформа: Android.
  • Стоимость: бесплатно.
  • Совместимость: полная с LG.

Приложение не только подключает блютуз гарнитуру, но и читает вам пришедшие смс.

IVT Bluesoleil

  • Платформа: Windows
  • Стоимость: 210 рублей.
  • Совместимость: полная с производителями Orient, Prolife, Billiontone и частичная с Smart.

Очень простая в работе программа. При запуске нужно просто нажать на ядро в центре, чтобы приложение нашло все устройства в радиусе досягаемости. Соединение происходит при помощи совместно введенного PIN-кода, который можно выключить. Программа полностью русифицирована и представляет больше возможностей, по сравнению со своими аналогами. Кроме передачи данных, можно раздавать интернет, производить синхронизацию и пр.

My Bluetooth Places

  • Платформа: Windows
  • Стоимость: бесплатно
  • Совместимость: полная с производителями Mobidick, Jabra и Smart и частичная с Prolife.

Программа интересна тем, что для каждого устройства можно выбрать конкретные профили и сервисы. Интерфейс похожий на стандартное окно Windows, что упрощает работу для начинающих.

Bluetooth Widget

  • Платформа: Andoid
  • Стоимость: бесплатно

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

Как настроить Bluetooth на Android: Видео

Источник

Использование Bluetooth в Android

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

Работа с Bluetooth состоит из четырех этапов: установка настроек bluetooth адаптера, поиск доступных для соединения устройств, установка соединения, передача данных.

Читайте также:  Обход frp android 6 через настройки

Обзор Android Bluetooth API

Bluetooth API располагается в пакетеandroid.bluetooth. В его состав входит несколько классов:

  • BluetoothAdapter— отвечает за работу с установленным в телефоне Bluetooth модулем. Экземпляр этого класса есть в любой программе, использующей bluetooth. В состав этого класса входят методы, позволяющие производить поиск доступных устройств, запрашивать список подключенных устройств, создавать экземпляр класса BluetoothDevice на основании известного MAC адреса и создавать BluetoothServerSocket для ожидания запроса на соединение от других устройств.
  • BluetoothDevice— класс, ассоциирующийся с удаленным Bluetooth устройством. Экземпляр этого класса используется для соединения через BluetoothSocket или для запроса информации об удаленном устройстве (имя, адресс, класс, состояние).
  • BluetoothSocket— интерфейс для Bluetooth socket, аналогичный TCP сокетам. Это точка соединения, позволяющая обмениваться данными с удаленным устройством через InputStream и OutputStream.
  • BluetoothServerSocket— представляет открытый сокет сервера, готовый к обработке входящего запроса. Для того чтобы соединить два Android устройства, одно из них должно открыть сокет с помощью этого класса. Когда удаленное устройство пошлет запрос на соединение, BluetoothServerSocket вернет объект BluetoothSocket.
  • BluetoothClass— описывает основные параметры Bluetooth модуля. Объект этого класса доступен только в режиме чтения и может быть полезен при определении типа устройства.
  • BluetoothProfile— интерфейс, представляющий Bluetooth профиль (спецификацию беспроводного интерфейса для соединения устройств через Bluetooth). Примером профиля может служить Hands-Free profile, определяющий порядок работы с беспроводной гарнитурой.
  • BluetoothHeadset— обеспечивает поддержку bluetooth гарнитур. Включает в себя профили Bluetooth Headset и Hands-Free (v1.5).
  • BluetoothA2dp— Описывает Advanced Audio Distribution Profile, определяющий передачу потока высококачественных аудиоданных через bluetooth.
  • BluetoothHealth— определяет proxy для Health Device Profile.
  • BluetoothHealthCallback— абстрактный класс, который можно использовать для реализации обратных вызовов от BluetoothHealth. Для того чтобы регистрировать изменение состояния Bluetooth устройства нужно на основе этого класса создать собственный и переопределить в нем callback методы.
  • BluetoothHealthAppConfiguration— конфигурация, которая используется для соединения с различными медицинскими bluetooth устройствами.
  • BluetoothProfile.ServiceListener— интерфейс, который посылает уведомление BluetoothProfile IPC клиентам при их подключении и отключении от сервиса.

В рамках этой статьи мы не будем углубляться в суть работы с медицинскими bluetooth устройствами и сосредоточимся на первых четырех классах.

Установка настроек Bluetooth адаптера из Android

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

Помимо этого необходимо дать приложению разрешение на использования Bluetooth модуля. Для этого в манифест программы нужно добавить строку

Если Вы собираетесь использовать критические с точки зрения безопасности возможности, например, изменить имя устройства, то нужно дать более мощные разрешения BLUETOOTH_ADMIN:

При использовании разрешения BLUETOOTH_ADMIN, необходимо также указывать и BLUETOOTH.

Прежде чем соединяться с кем-нибудь и передавать данные нужно убедиться, что ваш телефон имеет bluetooth модуль. Первым делом при работе с bluetooth API нужно создать экземпляр класса BluetoothAdapter

Если ваш телефон не поддерживает bluetooth, будет возвращено значение «null». На практике нужно всегда проверять это условие, чтобы избежать ошибок.

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

Если пользователь согласился на включение адаптера, в переменную enableBtIntent будет записано значение RESULT_OK. В противном случае — RESULT_CANCELED.

После того, как все проверки выполнены, можно приступать к работе. Давайте, например, отобразим имя и адрес нашего адаптера, вызвав методы getName() и getAddress().

Если приложение имеет разрешение BLUETOOTH_ADMIN, вы можете изменить имя Bluetooth устройства с помощью метода

для отображения состояния адаптера служит метод BluetoothAdapter.getState(). Этот метод может возвращать одно из следующих значений:

STATE_TURNING_ON
STATE_ON
STATE_TURNING_OFF
STATE_OFF

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

Организация поиска доступных bluetooth устройств

С помощью класса BluetoothAdapter, Вы можете найти удаленное bluetooth устройство, запустив сканирование или запросив список спаренных устройств.

При сканировании осуществляется поиск доступных bluetooth модулей вокруг вас. Если в поле досягаемости окажется устройство с разрешенным bluetooth, оно отправит в ответ на запрос некоторую информацию о себе: имя, класс, свой уникальный MAC адрес. На основе этой информации можно организовать соединение и передачу данных.

Сразу после установки соединения с удаленным устройством, пользователю будет автоматически показан запрос на соединение. В случае положительного ответа полученная информация (имя, класс и MAC адрес) сохраняется и может затем использоваться через bluetooth API. Так при следующем сеансе связи с данным удаленным устройством вам уже не придется проводить сканирование, поскольку необходимый MAC адрес уже будет занесен в базу вашего телефона и его можно просто выбрать из списка спаренных устройств.

Необходимо различать понятие спаренных и соединенных устройств. Спаренные устройства просто знают о существовании друг-друга, имеют ссылку-ключ, которую могут использовать для аутентификации, и способны создать шифрованное соединение друг с другом. Соединенные устройства разделяют один радиоканал и могут передавать данные друг другу. Текущая реализация bluetooth API требует, чтобы устройства были спарены перед соединением. (Спаривание выполняется автоматически, когда вы начинаете шифрованное соединение через Bluetooth API)

Запрос на соединение со спаренным устройством

Прежде чем приступать к поиску устройств вокруг имеет смысл показать пользователю список уже известных системе устройств. Вполне возможно, что требуемый телефон окажется в этом списке. Метод getBondedDevices() возвращает множество (Set) устройств BluetoothDevice, с которыми уже происходило соединение. Вы можете показать пользователю этот список, например с помощью ArrayAdapter:

Для того чтобы инициализировать соединение нужно знать MAC адрес устройства. В приведенном выше примере эти адреса заносятся в Arrayadapter и показываются пользователю. При желании, Вы можете легко достать любой адрес из этого списка.

Поиск устройств

Для того, чтобы начать сканирование радиодиапазона на предмет наличия доступных устройств просто вызовите метод startDiscovery(). Сканирование происходит в отдельном асинхронном потоке. Метод возвращает true, если запуск сканирования прошел успешно. Обычно процесс сканирования занимает порядка 10-15 секунд. Чтобы получить информацию о найденных устройствах Ваше приложение должно зарегистрировать BroadcastReceiver для интента ACTION_FOUND. Этот интент вызывается для каждого найденного устройства. Интент содержит дополнительные поля EXTRA_DEVICE и EXTRA_CLASS, которые содержат объекты BluetoothDevice и BluetoothClass соответственно.

Поиск Bluetooth устройств требует много ресурсов. Как только Вы нашли подходящее устройство, не забудьте остановить процесс сканирования. Это можно сделать с помощью метода cancelDiscovery(). Кроме того, если ваш телефон уже находится в соединении с каким-либо устройством, сканирование может значительно сузить ширину пропускания канала, поэтому лучше воздержаться от поиска новых устройств при установленном соединении.

Включение Bluetooth из приложения

Современные Android смартфоны не могут похвастаться долгим временем работы, поэтому все нормальные люди отключают Bluetooth модуль. Если Вы припрограммровании для Android хотите дать своим пользователям возможность сделать телефон видимым для других телефонов, вызовите с помощью метода startActivityForResult(Intent, int) интент ACTION_REQUEST_DISCOVERABLE. В результате пользователю будет показано системное окно с запросом на перевод телефона в режим bluetooth видимости. По умолчанию этот режим включается на 120 секунд. Это время можно изменить с передав интенту дополнительный параметр EXTRA_DISCOVERABLE_DURATION. Максимально доступное время составляет 3600 секунд. Значение 0 переводит bluetooth модуль вашего телефона в режим постоянной видимости. Для примера создадим интент с запросом на переход в режим видимости на 300 секунд

Читайте также:  Настройка браузера в телевизоре samsung

В результате выполнения этого кода пользователю будет показан диалог с запросом. Если пользователь согласится, телефон будет переведен в режим видимости, и будет вызван callback метод onActivityResult() . В качестве результата методу будет передано число секунд, которое устройство будет видимым. Если пользователь откажется от предложения или произойдет ошибка, то интент вернет код RESULT_CANCELED. Перевод устройства в режим видимости автоматически включает bluetooth адаптер.

Если вы хотите получить уведомления, при изменении режима видимости Вашего устройства, зарегистрируйте BroadcastReceiver для интента ACTION_SCAN_MODE_CHANGED. Дополнительные поля EXTRA_SCAN_MODE и EXTRA_PREVIOUS_SCAN_MODE позволяют получить информацию о новом и старом состоянии соответственно. Они могут принимать значения SCAN_MODE_CONNECTABLE_DISCOVERABLE, SCAN_MODE_CONNECTABLE или SCAN_MODE_NONE. Первое значение указывает на то, что устройство доступно для поиска. Второе — устройство не доступно для поиска, но способно принимать соединения. Третье — не доступно для поиска и не может принимать соединения.

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

Соединение устройств

Чтобы соединить два устройства, вы должны написать серверную и клиентскую часть кода. Одно из устройств должно открыть серверный сокет, а второе — инициализировать соединение, используя MAC адрес сервера. Сервер и клиент считаются соединенными, когда они оба имеют активный BluetoothSocket на одном и том же RFCOMM канале. После этого они могут поучать и отправлять потоки данных. Сервер и клиент по-разному получают требуемый BluetoothSocket. Сервер получает его, когда входящее соединение принято. Клиент — когда открывает RFCOMM для сервера.

Сервер

При соединении устройств одно из них должно вести себя как сервер, то есть удерживать открытый BluetoothServerSocket. Цель сервера — ждать запроса на входящее соединение, и когда оно подтверждено, создать BluetoothSocket. После этого BluetoothServerSocket можно закрыть. Рассмотрим поэтапно процедуру соединения с точки зрения сервера:

  1. Получить BluetoothServerSocket вызвав метод listenUsingRfcommWithServiceRecord(String, UUID). Первый параметр метода представляет собой идентификационное имя вашего сервиса. Система автоматически добавит его в базу Service Discovery Protocol (SDP). Обычно в качестве этого параметра просто указывают название приложения. Второй параметр также идентифицирует сервис. Этот параметр используется клиентом при подтверждении соединения.
  2. Начинаем прослушивать запрос на соединения через метод accept(). Это блокирующий метод, который возвращает результат либо когда соединение подтверждено, либо когда произошло исключение. Соединение считается подтвержденным, когда удаленное устройство пошлет запрос на соединение с UUID, указанным при регистрации серверного сокета. В случае успеха, accept() возвращает настроенный на соединение BluetoothSocket.
  3. Если Вы хотите принять дополнительное соединение, вызовите метод close(). Это приведет к освобождению сокета и всех его ресурсов, но не закроет соединенный BluetoothSocket. В отличие от TCP/IP, RFCOMM позволяет работать только с одним клиентом на канале, поэтому в большинстве случаев имеет смысл вызывать метод close() срезу же после установки принятия сокета.

Поскольку метод accept() является блокирующим, его не стоит вызывать из потока главной деятельности, поскольку это приведет к подвисанию интерфейса. Обычна вся работа с BluetoothServerSocket и BluetoothSocket выполняется в отдельном потоке. Чтобы прекратить выполнение метода accept(), вызовите метод close() для BluetoothServerSocket (или BluetoothSocket) из любого другого потока вашего приложения.

Ниже приведен пример потока, реализующий описанный выше механизм работы

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

Обратите внимание, когда accept() возвращает BluetoothSocket, сокет уже соединен, поэтому не требуется вызывать метод connect().

manageConnectedSocket() представляет собой метод, внутри которого нужно создать поток для передачи данных. Его возможная реализация будет рассмотрена ниже.

Вы должны закрыть BluetoothServerSocket сразу же после завершения прослушивания эфира на предмет наличия входящего соединения. В приведенном примере метод close() вызывается сразу после получения объекта BluetoothSocket. Также Вам может понадобиться public метод для остановки приватного BluetoothSocket.

Клиент

Для инициализации соединения с удаленным устройствам (устройством, которое держит открытым серверный сокет) вам необходимо получить объект BluetoothDevice, содержащий информацию о нем. Этот объект используется для получения BluetoothSocket и инициализации соединения.

Опишем процедуру соединения:

  1. Получим BluetoothSocket вызвав метод BluetoothDevice.createRfcommSocketToServiceRecord(UUID). Значение параметра UUID должно совпадать с значением, указанным при вызове listenUsingRfcommWithServiceRecord сервера.
  2. Инициализируем соединение, вызвав метод connect(). После вызова этого метода система будет выполнять SDP поиск на удаленном устройстве, чтобы сопоставить UUID. В случае успеха при условии подтверждения запроса со стороны сервера будет открыт RFCOMM канал. Это блокирующий вызов. Если по каким-то причинам соединение сорвется или выйдет timeout (около 12 секунд), будет сгенерировано исключение.

Как и в случае с accept, метод connect() следует выполнять в отдельном потоке, в противном случае может произойти подвисание интерфейса.

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

Приведем пример клиентского приложения, инициализирующего соединение

Для остановки сканирования эфира вызывается метод cancelDiscovery(). Перед вызовом этого метода можно проверить идет ли сканирование с помощью isDiscovering().

После завершения работы с BluetoothSocket всегда вызывайте метод close(). Это поможет сэкономить ресурсы телефона.

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

После успешного соединения, каждое из соединенных устройств имеет объект BluetoothSocket с помощью которого легко реализовать передачу/прием данных:

  1. С помощью методов getInputStream() и getOutputStream() полуить объекты InputStream и OutputStream, управляющие передачей через сокет.
  2. Читать и писать данные в поток с помощью методов read(byte[]) и write(byte[]).

Вы должны использовать отдельный поток для чтения и записи данных. Это важно, поскольку методы read(byte[]) и write(byte[]) являются блокирующими и их вызов в основном потоке может парализовать вашу программу. Главный цикл в этом отдельном потоке должен считывать данные из InputStream. Для записи в OutputStream имеет смысл создать отдельный public метод.

В конструкторе создаются объекты для работы с потоками данных, после чего поток оживает входящие данные. После того как прочитан очередной блок данных из входящего потока он посылается в главную деятельность посредствам вызова метода Handler родительского класса. Для отправки данных из главной деятельности просто вызывается метод write(). Внутри этого публичного метода происходит вызов write(byte[]). Метод close() также можно вызвать из главной деятельности. Он разрывает соединение.

Источник

Adblock
detector