Ручное сопряжение Bluetooth отключается в Android?

#android #bluetooth #power-saving

#Android #bluetooth #энергосбережение

Вопрос:

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

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

У меня ситуация, когда у меня есть несколько устройств BT, которые всегда находятся в режиме не обнаружения. Я знаю MAC и PIN-код этих устройств. Есть ли в Android-разработчике способ вручную добавлять устройства в список СОПРЯЖЕННЫХ, чтобы я мог просто использовать подключение в качестве клиента. Я понимаю, что этот maual написан для V3. я думаю, мне нужно будет сделать это на 2.0; 2.1 — кто-нибудь делал это раньше?

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

Ответ №1:

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

Хотя некоторые предложения:

Если вы вообще можете сделать свои устройства 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.Bluetooth-устройство, например, здесь .

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