#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 доступными для обнаружения, вы могли бы сделать это таким образом:
- Сделайте ваше устройство BT доступным для обнаружения
- Пусть Android ищет и находит устройство, а затем инициирует соединение
- Android запросит PIN-код для сопряжения с устройством; введите PIN-код.
- После успешного сопряжения Android сохраняет информацию о сопряжении для дальнейшего использования, чтобы вы могли
- Сделайте ваше устройство BT снова невидимым.
С этого момента ваше приложение должно иметь возможность подключаться к устройству BT в любое время без дальнейших операций сопряжения.
Если это не вариант для вас, может быть, вы хотите пойти другим путем:
В текущих версиях Android реализованы различные процедуры API, которые не задокументированы и не представлены в обычном SDK. Хакерским решением может быть использование некоторых из этих «скрытых» («@hide»…) API-интерфейсы, либо через отражение, либо через модификацию вашей установки SDK.
Но имейте в виду, что это всегда взлом, и он может работать на определенном устройстве с определенной версией Android и, скорее всего, сломает ваше приложение на другом устройстве и / или любой другой версии Android.
Сказав это, здесь приведена некоторая ссылка:
Пример того, как получить доступ к «скрытому» API Bluetooth.
Затем взгляните на исходный код для android.bluetooth.Bluetooth-устройство, например, здесь .
Там public boolean createBond(){...}
вы можете делать то, что хотите.