Как подключиться по bluetooth без пин кода android

Обновлено: 06.07.2024

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

Это точно, почему createInsecureRfcommSocketToServiceRecord() добавлено BluetoothDevice начиная с Android 2.3.3 (уровень API 10) (SDK Docs). до этого для этого не было поддержки SDK. Он был разработан, чтобы позволить Android подключаться к устройствам без пользовательских интерфейсов для ввода PIN-кода (например, встроенного устройства), но он также может использоваться для настройки соединения между двумя устройствами без ввода PIN-кода пользователя.

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

вы также можете осуществлять связь на коротких расстояниях через NFC, но это оборудование менее заметно на устройствах Android. Определенно выбрать одну, и не пытайтесь создать решение, которое использует оба.

надеюсь, что это поможет!

P. S. Есть также способы, чтобы сделать это на многих устройствах до 2.3 с помощью отражения, потому что код существовал. но я бы не обязательно рекомендовал это для массовых распределенных производственных приложений. Смотрите это StackOverflow.

Ну, это действительно должно быть разбито на 2 части:

  1. можете ли вы соединить 2 устройства Bluetooth, не проходя через Bluetooth сопряжения рукопожатия? Нет, не можешь. Это вписано в протокол, так что ничего не поделаешь.
  2. можете ли вы выполнить рукопожатие без пользовательского интерфейса? Да, вы можете: это просто код.

Я не уверен, как вы это делаете в Windows land, но в * Nix land есть функции, похороненные в стеке Bluez, которые позволяют вам получайте уведомления о появлении нового устройства и отправляйте ему код сопряжения (очевидно, что должны быть эти функции: это то, что использует пользовательский интерфейс). Учитывая достаточное время и опыт, я уверен, что вы могли бы выяснить, как написать свою собственную версию приложения Настройки Bluetooth, что так или иначе:

  • Обнаружено новое устройство, прибыл
  • посмотрел на имя / bluetooth mac-адрес и проверил некоторую внутреннюю базу данных для кода сопряжения с использовать.
  • отправил код сопряжения и завершил операцию

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

Если вы продолжите писать код, я хотел бы получить его в свои руки.

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

1) приложение и само устройство могут быть установлены в режимы аутентификации need/not-need, поэтому часто не было никаких требований для сопряжения. Например, большинство серверов OBEX (OPP) вообще не нуждаются в аутентификации, поэтому нет необходимости в сопряжении/связывании.

предположительно, ответ"Wireless Designs" покрывал это случай.

2) Затем, если сопряжение требуется устройством / приложением:

2.1) до версии v2.1 для сопряжения тогда два устройства должны иметь совпадающую парольную фразу / контакты. Таким образом, это либо необходимое участие пользователя (для ввода контактов), либо знания в softwareto знают PIN-код: либо определено в приложении if pin callback send pin="1234" или smarts в ОС, таких как BlueZ и Win7 (см. слайд 20 на моем Bluetooth в Windows 7 doc), который имеет логику как: if(remotedevice=headset) then expectedPin ="0000" . Не знаю, что Android делает

2.2) в v2.1 добавлено безопасное простое сопряжение (SSP). Который изменяет сопряжение на:

так, чтобы сопряжение было без подсказки должен либо "JustWorks" или "вне диапазона", т. е. к вашему предложению ЯТЦ.

надеюсь, что это поможет.

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

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

BT версии 2.0 или менее - вы должны иметь возможность сопряжения / связи с использованием стандартного PIN-кода, введенного программно, например, 1234 или 0000. Это не очень безопасно, но многие устройства BT делают это.

BT версии 2.1 или выше - режим 4 Безопасный простое сопряжение" просто работает " модель может быть использована. Он использует эллиптическое шифрование (что бы это ни было) и очень безопасен, но открыт для человека в середине атак. По сравнению со старым подходом "0000" pin-код это световые годы вперед. Это не требует любой пользовательский ввод.

Это согласно спецификациям Bluetooth, но то, что вы можете использовать, зависит от того, какой версон стандарта Bluetooth поддерживает ваш стек и какой API у вас есть.

Если вы спрашиваете, можете ли вы выполнить сопряжение двух устройств без одобрения пользователя, нет, это невозможно, это функция безопасности. Если вы сопряжены по Bluetooth, нет необходимости обмениваться данными по NFC, просто обменивайтесь данными по Bluetooth-ссылке.

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

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

Именно поэтому createInsecureRfcommSocketToServiceRecord() был добавлен в BluetoothDevice начиная с Android 2.3.3 (уровень API 10) (Документы SDK) . до этого для этого не было поддержки SDK. Он был разработан, чтобы позволить Android подключаться к устройствам без пользовательского интерфейса для ввода ПИН-кода (например, встроенного устройства), но он так же удобен для установки соединения между двумя устройствами без ввода ПИН-кода пользователя.

Следственный метод listenUsingInsecureRfcommWithServiceRecord() в BluetoothAdapter используется для принятия этих типов соединений. Это не нарушение безопасности, потому что методы должны использоваться в паре. Вы не можете использовать это, чтобы просто попытаться выполнить сопряжение с любым старым устройством Bluetooth.

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

Надеюсь, это поможет!

P.S. Есть также способы сделать это на многих устройствах до 2.3 с использованием отражения, потому что код действительно существовал . но я бы не обязательно рекомендовал это для приложений массового распространения. См. Этот StackOverflow.

Если вы спрашиваете, можете ли вы соединить два устройства без того, чтобы пользователь КОГДА-ЛИБО одобрил соединение, нет, это невозможно, это функция безопасности. Если вы подключены через Bluetooth, нет необходимости обмениваться данными через NFC, просто обменивайтесь данными по каналу Bluetooth.

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

BT версии 2.0 или ниже - у вас должна быть возможность выполнять сопряжение / связывание с использованием стандартного PIN-кода, введенного программно, например. 1234 или 0000. Это не очень безопасно, но многие устройства BT это делают.

BT версии 2.1 или выше - можно использовать модель "просто работает" в режиме 4 Secure Simple Pairing. Он использует эллиптическое шифрование (что бы то ни было) и очень безопасен, но открыт для атак Man In The Middle. По сравнению со старым подходом к использованию пин-кода «0000» он опередил нас на световые годы. Для этого не требуется никаких действий со стороны пользователя.

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

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

Цитата из спецификации относительно безопасности - «Протокол передачи обслуживания требует передачи данных для доступа к сети и учетных данных (данных конфигурации оператора связи), чтобы одно устройство могло подключаться к беспроводной сети, предоставляемой другим устройством. Из-за близости, необходимой для связи между устройствами NFC и тегами, Перехват данных конфигурации оператора связи затруднен, но не невозможен без признания законным владельцем устройств. Передача данных конфигурации оператора связи на устройства, которые могут находиться в непосредственной близости, считается законной в рамках данной спецификации ".

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

1) Приложение и само устройство могут быть настроены на требуемые / не требующиеся режимы аутентификации, поэтому часто не требовалось сопряжение. Например, большинству серверов OBEX (OPP) вообще не нужна аутентификация, поэтому нет необходимости в сопряжении / связывании.

Предположительно ответ "Wireless Designs" касался этого случая.

2) Затем, если устройство / приложение требовало сопряжения:

2.1) До версии 2.1 для сопряжения два устройства должны были иметь совпадающие парольные фразы / PIN-коды. Таким образом, для этого требовалось либо участие пользователя (для ввода ПИН-кода), либо знание программного обеспечения, чтобы узнать ПИН-код: либо определенный в приложении if pin callback send pin="1234" , либо умные функции в ОС, такие как BlueZ и Win7 (см. Слайд 20 на моем Bluetooth в документе Windows 7 ), который имеет такую ​​логику: if(remotedevice=headset) then expectedPin ="0000" . Не знаю, что делает Android

2.2) В v2.1 было добавлено простое безопасное соединение (SSP). Что меняет соединение на:

Таким образом, для спаривания без подсказок требуется либо «JustWorks», либо «Out-of-Band», например, ваше предложение NFC.

Надеюсь, это поможет.

Что ж, это действительно должно быть разбито на 2 части:

  1. Можно ли выполнить сопряжение 2 устройств Bluetooth, не выполняя рукопожатие для сопряжения Bluetooth? Нет, не можешь. Это заложено в протоколе, поэтому нет никакого способа обойти это.
  2. Можете ли вы выполнить рукопожатие без пользовательского интерфейса? Да, можно: это просто код.

Я не уверен, как вы это делаете в среде Windows, но в стране * nix есть функции, скрытые в стеке Bluez, которые позволяют получать уведомления о появлении нового устройства и отправлять ему код сопряжения (очевидно, что должен быть эти функции: это то, что использует пользовательский интерфейс). Имея достаточно времени и опыта, я уверен, что вы могли бы придумать, как написать собственную версию приложения Bluetooth Settings, которая каким-то образом:

  • Обнаружено прибытие нового устройства
  • Посмотрел имя / MAC-адрес bluetooth и проверил некоторую внутреннюю базу данных для использования кода сопряжения.
  • Отправил код сопряжения и завершил операцию

И все это без необходимости открывать пользовательский интерфейс.

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

Соединение по Bluetooth — хороший способ перекинуть файлы с одного устройства на другое или подключить беспроводные гаджеты друг к другу. Но иногда возникают проблемы с сопряжением. Рассказываем, что делать, если подключение по Bluetooth не работает.

В целом, Bluetooth имеет обратную совместимость: устройства, поддерживающие стандарт Bluetooth 5.0, по-прежнему могут сопрягаться с устройствами, использующими, скажем, древний Bluetooth 2.1, вышедший еще в 2007 году.

Исключение составляют гаджеты, которые используют версию с низким энергопотреблением под названием Bluetooth Low Energy, которая работает по другому протоколу, нежели старые или «классические» устройства Bluetooth. Устройства с BLE не обладают обратной совместимостью и не распознают старые устройства, поддерживающие классический Bluetooth. Обычно BLE-девайсы — это метки, фитнес-браслеты и пр.


Если устройство поддерживает Bluetooth 4.0, 4.2 или 5.0, оно должно распознавать в том числе и Bluetooth LE

Что можно сделать, если соединение по Bluetooth не работает?

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

2. Включить режим видимости. Часто это касается фитнес-браслетов и информационно-развлекательной системы автомобиля — пользователи забывают активировать режим видимости.

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

4. Удалить старые подключения. Иногда гаджеты поддерживают только одно подключение — особенно часто это касается беспроводных колонок. Так что вы можете пытаться подключить динамик к планшету, в то время как он успешно сопрягается с устройством, с которым соединился в последний раз, например, со смартфоном. Выключите на время этот девайс или удалите у него подключение.

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

6. Удалить устройство со смартфона и найти заново. В настройках iOS вы можете удалить устройство, нажав на его имя, а затем «Забыть это устройство». На Android коснитесь имени устройства и затем «Разорвите пару». Если речь идет о системе автомобиля, может потребоваться выключить зажигание, открыть и закрыть дверь авто и подождать пару минут, прежде чем пытаться снова выполнить сопряжение.

7. Отойти от источников помех. Очень редко, но могут мешать сигналы от других устройств, например, Wi-Fi-роутера, порта USB 3.0. Помехой может стать даже усиленный чехол для смартфона.

8. Обновить драйверы и прошивку оборудования.

9. Очистить кэш Bluetooth. Иногда приложения могут мешать работе Bluetooth и очистка кэша может решить проблему. В Android-устройствах этот раздел находится в настройках системы: «Система» — «Дополнительно» — «Сбросить параметры» — «Сбросить настройки Wi-Fi, мобильного телефона и Bluetooth». На iOS понадобится разорвать пару со всеми устройствами (перейдите в «Настройки» — Bluetooth, выберите значок информации и «Забыть это устройство» для каждого девайса), затем перезагрузить гаджет.

Прикрепленное изображение

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

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


Общая информация:

  • Зайти в Настройки->Об устройстве->Статус (может потребоваться включённый Bluetooth)
  • Включить Bluetooth у себя, включить обнаружение, после чего посмотреть через другое устройство (для этого читайте: "Способы узнавания MAC-адресов чужих гарнитур")
  • Если у вас есть директория /data/misc/bluetoothd , то название единственной папки внутри bluetoothd будет именно ваш MAC-адрес
  • Программа AndroBluetooth, запущенная на рабочем устройстве (показывает снизу имени)
  • Также, старые Sony Ericsson отображают MAC адрес устройств до начала сопряжения
Известные папки истории и настроек Bluetooth в устройствах
  • Asus ME173X - /data/misc/bluedroid/
  • HTC One XL - /data/misc/bluetoothd/
  • Samsung Galaxy S2 Plus - /data/misc/bluedroid/

Тенденция такова, что настройки находятся в папке /data/misc/blue*** . Но разделу требуется больше информации!

Известные способы решения проблем:

  • Общее решение каких-то проблем, связанных с подключением к гарнитуре - Bluetooth Fix & Repair
  • Решение проблем, связанных с автоподключением - Bluetooth Auto Connect или Bluetooth connect & Play
Поверхностные способы решения проблем (иногда помогает)
  • Полная (не быстрая!) перезагрузка
  • Если есть директория /data/misc/bluedroid/, то можно попробовать удалить папку с вашим MAC-адресом внутри неё и перезагрузиться. (нужен ROOT)
  • Чистка разделов Cache и Dalvik Cache (через кастомный Recovery, разумеется)
  • Если уж ну совсем ничего не помогло - может помочь Hard Reset или перепрошивка (однажды перепрошивка с CyanogenMod на сток решила проблему)
  • Если проблема массовая, то производитель устройства, скорее всего, выпустит прошивку-патч. Попробуйте проверить это через поиск в Гугл
Способы подключения к устройствам, которые Android не видит
  • Программа AndroBluetooth. Включить Bluetooth - Включить программу - Scan Devices - Pair
  • Также, в теории должно быть можно через Bluetooth-терминалы, например, через такие: 1 (Android 4.0.4+) / 2 (Android 2.3+) / 3 (Android 2.1+). Требуется больше информации!
  • Использовать телефон со все время включенным единожды Bluetooth (правда тогда будет больше жор зарядки). Возможно, проблема хардварная.


Способы редактирования настроек и истории Bluetooth Пока ничего не известно, нужно больше информации!
  • Программа AndroBluetooth.
  • Хард ресет/Перепрошивка
  • Также, в теории должно быть можно через Bluetooth-терминалы, например, через такие: 1 (Android 4.0.4+) / 2 (Android 2.3+) / 3 (Android 2.1+). Требуется больше информации!
Баги при работе с Bluetooth-клавиатурой на Android 4.3+ / Решение проблемы "Unable to play during call" Проблемы "непонимания" устройством Bluetooth-гарнитуры

  • Также рекомендуется прочитать эту тему для решения подобного рода проблем
  • Модель Вашего устройства и установленная прошивка;
  • Краткое описание проблемы (кратко, но емко и понятно);
  • Предпринятые действия (в том числе, со ссылками на пункты под спойлером "Способы решения проблемы")

Убедительно просим Вас воздержаться в данной теме от вопросов о том, "что такое вайп?", "как сделать вайп/хард резет?" и т.д. Ответы на эти вопросы есть в FAQ по устройствам и Android OS.

Внимание! Теме требуется больше информации, так как на данный момент информации на тему Bluetooth в Интернете ну очень мало! Не стесняйтесь, пишите в комментах то, что вы знаете на эту тему!

Шапка более регулярно не обновляется! Если считаете, что что-то надо добавить в шапку, станьте куратором, или пользуйтесь кнопкой "Жалоба"

Причина редактирования: Компромиссное (не абсолютное) решение, если после пары вк/выкл bluetooth падает профиль HSP/HFP

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

  • Форсированно включать/выключать Bluetooth - кнопка Enable/Disable
  • Форсированно проводить сканирование устройств - кнопка Scan Devices
  • Форсированно подключаться (спариться) к устройствам с глючным именем, к которым стандарный менеджер устройств не подключается - кнопка Pair/Unpair
  • Смотреть список спаренных устройств (что, в принципе, вряд ли пригодится) - кнопка Paired Devices

Программу можно скачать по следующим ссылкам (240 кб):

С GitHub разработчика: APK
С 4pda: AndroBluetooth.apk ( 239.81 КБ )

А можно как-то поменять язык оповещений в китайской гарнитуре? (достал китайский)

Здравствуйте.
Хочу вывести ФМ радио через Bluetoot наушники.
Обычные наушники должны оставаться подключенными как антенна.
Есть ФМ плееры в которых это можно сделать переключением вывода звука в самом плеере.
У меня на Sony Z3 такой возможности нет.

Есть ли какие-то микшеры, чтобы выводить звук на Bluetooth гарнитуру?

Люди, помогите, пожалста!
Такая беда: есть автомагнитола Sony DSX-A50BT с блютузом, есть новый, купленный 3 дня назад, Meizu M3s mini. Телефон никак в упор не видит магнитолу. Хотя старый Huawei G700 распознает ее без проблем в качестве гарнитуры и прекрасно с ней проработал три с лишним года.
Пробовала утилиты для поиска, в т.ч. AndroidBluetooth, результата нет. Делать хард ресет телефону не хочется - только-только все настроила. С другими устройствами, в т.ч. с наушниками соединяется без проблем.
Почему они с магнитолой могут друг друга игнорить?

Существует множество способов беспроводной связи: от подключения мобильного телефона к вышкам сотовой связи до подключения к Интернету через Интернет на компьютере. Bluetooth работает практически так же, как эти технологии, за исключением более коротких расстояний и гораздо более низкого энергопотребления. Некоторые устройства Bluetooth подключаются без вашего ведома, как ваш мобильный телефон. Другие требуют пароль, как ваш Wi-Fi.


кредит: Юриказак / iStock / GettyImages

Что происходит, когда вы соединяетесь

Использовать PIN-код Bluetooth по умолчанию

Обычные подозреваемые

Программируемый PIN-код Bluetooth

Интересными становятся устройства, которые имеют программируемый PIN-код Bluetooth, поэтому вы можете выбрать свой собственный в качестве дополнительной функции безопасности. Если вы забудете выбранный вами пароль или если вы покупаете использованное устройство с чужим PIN-кодом, вы не сможете найти используемый по умолчанию пароль. Вместо этого вам нужно найти процедуру сброса для вашего конкретного устройства. Вам может быть предоставлена ​​возможность очистки персонализированного ПИН-кода и возврата к значению по умолчанию или перезаписи предыдущего ПИН-кода другим.

Как узнать свой номер мобильного телефона на Nokia

Как узнать свой номер мобильного телефона на Nokia

Поиск вашего номера телефона на телефоне Nokia можно с помощью нескольких различных методов, которые работают на большинстве телефонов, включая модель SIM-карты Nokia Lumia 650. Активированные телефоны .

Как узнать свой пароль Skype

Как узнать свой пароль Skype

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

Тренируйте cortana в windows 10, чтобы лучше узнать свой голос

Тренируйте cortana в windows 10, чтобы лучше узнать свой голос

Одной из новых функций Windows 10, перенесенной с Windows Phone, является цифровой помощник Cortana. Вот как заставить вас понять вас лучше.

Читайте также: