Ручное соединение Bluetooth в Android? - PullRequest
2 голосов
/ 26 октября 2011

Я читал это http://developer.android.com/guide/topics/wireless/bluetooth.html#QueryingPairedDevices

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

У меня есть ситуация, когда у меня есть несколько BT-устройств, которые всегда находятся в режиме Non-Discover. Я знаю MAC и PIN-код этих устройств. Есть ли способ в Android Dev вручную добавлять устройства в список PAIRED, чтобы я мог просто использовать соединение в качестве клиента. Я понимаю, что этот maual написан специально для V3. я думаю, что мне нужно будет сделать это на 2.0; 2.1- кто-нибудь делал это раньше?

В основном эти устройства, к которым я хочу подключиться, являются энергосберегающими модулями, которые я использовал предварительно собранные модули BT для контроля дневного света, еще одного уровня влажности и т. Д. Каждые 3 часа или при перебоях и работе одной батареи в течение нескольких месяцев. Таким образом, отключение divcory на сервере экономит огромное энергопотребление и предотвращает попытки подключения других людей и разрядку аккумулятора.

1 Ответ

3 голосов
/ 27 октября 2011

Не уверен, что вы подразумеваете под «вручную»: вы подразумеваете «вручную», как в GUI / взаимодействии с пользователем, или «вручную», как «я делаю это в своем собственном коде приложения»?хотя:

Если вы вообще можете сделать ваши устройства BT обнаруживаемыми, вы можете сделать это следующим образом:

  1. Сделать ваше устройство BT доступным для обнаружения
  2. Разрешить Android искатьи найдите устройство, а затем инициируйте соединение
  3. Android запросит PIN-код для сопряжения с устройством;введите PIN-код.
  4. После успешного сопряжения Android сохраняет информацию о сопряжении для будущего использования, чтобы вы могли
  5. сделать ваше устройство BT снова невидимым.

С этого момента ваше приложение должно иметь возможность подключаться к устройству BT в любое время без дальнейших операций сопряжения.

Если сказанное не подходит вам, возможно, вы захотите пойти другим путем:

В текущих версиях Android реализованы разные подпрограммы API, которые не документированы и не представлены в обычном SDK.Хакерское решение может заключаться в использовании некоторых из этих «скрытых» («@hide» ...) API, либо с помощью отражения, либо с помощью модификации вашей установки SDK.

Но имейте в виду, что это всегда взломать , и он может работать на определенном устройстве с определенной версией Android и может сломать ваше приложение на другом устройстве и / или в любой другой версии Android.

Сказав это,Вот некоторые ссылки:

Пример доступа к «скрытому» API Bluetooth .

Затем взгляните на исходный код android.bluetooth.BluetoothDevice,Например, здесь .

Там public boolean createBond(){...} может делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...