Как использовать Broadcom BLE SDK (SMART 4.0) в Android 4.X

Я пытаюсь разработать приложение BLE bluetooth (SMART) для Android.

Мне удалось загрузить Broadcom BLE SDK, установить через Android SDK Manager, как описано на веб-сайте и загрузите примеры проектов .

Когда я попытался вставить один из примеров в свои тестовые телефоны (HTC One S, HTC One X, оба с функцией Bluetooth BLE), я столкнулся со следующей проблемой:

INSTALL_FAILED_MISSING_SHARED_LIBRARY

Есть ли возможность включить библиотеку Broadcom, описанную в файле AndroidManifest.xml? <uses-library android:name="com.broadcom.bt.le" android:required="true"/>

Кому-нибудь удалось протестировать примеры проектов Broadcom? А на каком телефоне?

Согласно этому сообщению, ошибка имеет был обнаружен на Samsung Galaxy S3, но я не нашел никакой информации о продуктах HTC.


ОБНОВЛЕНИЕ: какие отличные новости !!!

Последняя версия Android 4.3 (Jelly Bean) теперь поддерживает энергосберегающие аксессуары Bluetooth Smart.

http://www.android.com/about/jelly-bean/

https://developer.bluetooth.org/Pages/Bluetooth-Android-Developers.aspx

Не уверен, что все телефоны будут иметь обновления (даже последний HTC One M7, например), но в следующие телефоны, безусловно, будет встроена эта основная версия.


person sdespont    schedule 03.07.2012    source источник
comment
В качестве предложения я использовал этот API и хорошо работал у своего разработчика. motorola.com/docstools/library/   -  person Fran Verona    schedule 06.07.2012
comment
Спасибо за совет, какой комплект средств разработки вы используете? Я использую этот: nordicsemi.com/eng/Products/ Bluetooth-R-low-energy / nRF8001. Есть ли шанс управлять чипом Nordic BLE с библиотекой Motorla?   -  person sdespont    schedule 06.07.2012
comment
Я разработал Android-приложение для своего Motorola RAZR Droid, которое должно связываться со смарт-картой с помощью Bluetooth LE. Я не знаю, работает ли API Motorola с вашим комплектом. Извините, если я не могу вам слишком сильно помочь в этом вопросе.   -  person Fran Verona    schedule 06.07.2012
comment
Спасибо за ваш ответ. Последний вопрос: как вы думаете, может ли библиотека Motorla работать на телефоне HTC?   -  person sdespont    schedule 06.07.2012
comment
Возможно, он был оптимизирован для телефонов Motorola, но я думаю, что это не зависит от телефона.   -  person Fran Verona    schedule 06.07.2012


Ответы (8)


Проблема в том, что если на вашем телефоне не установлен файл .so, это не поможет.

И ваше устройство будет (на момент написания этой статьи) иметь файл .so только в том случае, если Broadcom благословил устройство.

Например, в последней официальной сборке (4.0.4) для относительно нового Samsung Galaxy Nexus этого нет.

Для тех, кто не знает, есть два разных (несовместимых) API для НИЗКОГО ЭНЕРГИИ Bluetooth (BtLE, теперь, по-видимому, называется BT Smart). Один от Broadcom, а другой от Motorola. Неудивительно, что каждый из них работает только с телефоном, в котором есть чипы этого производителя.

Это ужасная, ужасная ситуация, и Google ДЕЙСТВИТЕЛЬНО нужно приступить к разработке решения, иначе Android станет совершенно неуместным в небольшой отрасли, известной как ЗДРАВООХРАНЕНИЕ !!!!!

person idarwin    schedule 09.07.2012
comment
Хороший ответ, спасибо. Вы пытались разработать приложение BLE с IOS? Я прочитал в сети, что Apple выпустила новую версию своей CoreBluetooth Framework, поддерживающую BLE. Приложение Heartmonitor (ANT) существует с исходным кодом, но я не нашел никого, кто мог бы управлять таким комплектом разработки, как мой: nordicsemi.com/eng/Products/Bluetooth-R-low-energy/nRF8001 - person sdespont; 10.07.2012
comment
Конец года, решения от Google по-прежнему нет. Итак, я решил закрыть тему. Благодарим за ответ и будьте на связи с любыми обновлениями, найденными в Интернете! - person sdespont; 25.12.2012
comment
так что у вас есть что-то, чтобы заставить его работать. Я получил исходный код этой библиотеки и пытался написать слой JNI для интеграции этой библиотеки со стеком Broadcomm. - person AAnkit; 21.01.2013
comment
@AND_DEV: Мне очень интересно узнать о том же. Мне нужно попробовать «расширяемый» SDK для проекта. Итак, если у вас есть для меня какие-то рекомендации, это будет очень полезно. Заранее спасибо. - person Midhu; 27.02.2013
comment
Если вы пишете приложение, зависит от этого SDK, он никогда не работает, этот SDK неполный, при обнаружении они вызывают метод getDeviceType, который нигде не определен, поэтому он дает сбой только там. - person AAnkit; 27.02.2013

В HTC One X и One S используется чип Qualcomm Bluetooth, а не Broadcom. Следовательно, нельзя ожидать, что Broadcom SDK будет работать. Существует HTC BLE SDK, который работает с HTC One X +, Droid DNA и HTC One, и вы можете подписаться на HTC BLE SDK здесь:
http://www.htcdev.com/devcenter/opensense-sdk/partner-apis/bluetooth-low-energy/ < / а>

person Lance Nanek    schedule 22.07.2012
comment
В международной (европейской) версии HTC One X используется чип TI Wilink. - person Brad Werth; 09.11.2012
comment
Конец года, решения от Google по-прежнему нет. Итак, я решил закрыть тему. Благодарим за ответ и будьте на связи с любыми обновлениями, найденными в Интернете! - person sdespont; 25.12.2012
comment
Конечно, без проблем. С тех пор был анонсирован HTC BLE SDK, который доступен для людей, подписавших соглашение о неразглашении. В настоящее время поддерживаются устройства HTC One X + и Droid DNA. - person Lance Nanek; 29.12.2012
comment
@LanceNanek Будет ли SDK поддерживать другие устройства (One X / One S) в будущем? - person reTs; 20.03.2013

Подтверждение того, что стек BroadCom BLE работает на HTC 1X + и взаимодействует со стандартной TI KeyFob Demo.

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

BleFindMeClient действительно работает на HTC 1X + вместе с TI CC2540-mini Keyfob, также известным как KeyFobDemo в дистрибутиве TI.

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

http://youtu.be/cqWpjU7gJ2Q

Что касается другой проблемы, связанной с getDeviceType (), вот фрагмент кода, который всегда отлично работает на HTC 1x +. Надеюсь, это тоже поможет.

BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if ( BleAdapter.getDeviceType(device) == BleAdapter.DEVICE_TYPE_BLE ) {
    ...
}
person user2100730    schedule 28.03.2013
comment
Спасибо за обмен этой информацией. Оставайтесь на связи, если вы откроете для себя что-нибудь еще! - person sdespont; 29.03.2013

Кто-нибудь найдет решение здесь.

Вот три шага, которые нужно сделать:

  1. Не включать в файл манифеста.

  2. В проекте PropertiesJava Build PathLibrariesAdd external jar, add broadcomble jar.

  3. В проекте PropertiesJava Build PathOrder and Export проверьте включенный jar на шаге 2.

Наконец, проекты образцов Broadcom запускаются, но через несколько секунд вылетает из-за неизвестного виртуального метода, не реализованного в HTC (.getDeviceType(), ...)!

person sdespont    schedule 05.07.2012
comment
Есть ли прогресс в обходе pb .getDeviceType? ... Я пытаюсь сделать то же самое, но меня заблокировали из-за той же проблемы ... Доступна ли более свежая версия SDK? - person fvisticot; 22.02.2013
comment
@sdespont: извините, если я прокомментирую такой старый пост, но информацию по BLE и android 4.2 найти очень сложно. Вы знаете, где я могу скачать широкоформатную банку (может быть, с примерами кода)? Многие ссылки, указывающие на Google с некоторой информацией, заканчиваются ошибкой 403. Большое спасибо за то, что поделились своими знаниями. - person Linard Arquint; 03.12.2013
comment
@fvisticot Привет, Android 4.2 не поддерживает BLE. Вам необходимо использовать Android 4.3 и более поздние версии. Другими словами, вы не можете использовать BLE с устройствами, которые не поддерживают версию 4.3. - person sdespont; 03.12.2013
comment
Вы можете использовать BLE с Android 4.0 - 4.2 (возможно с более ранними версиями). Привет, ребята, я из ближайшего будущего. Есть еще много новых устройств Android на Android 4.1 и 4.2, которые не поддерживают BLE, но с помощью некоторых внешних библиотек можно подключиться. Основным источником информации является Bluetooth Quick Start Kit v3 [developer.bluetooth. .org / DevelopmentResources / Pages /. В нем есть вся документация и исходники с библиотекой для более ранней версии Andriod. HTC предоставляет собственную библиотеку: OpenSense BLE API Android SDK. Также проверьте Samsung BLE SDK. - person Vladislav; 06.03.2015

Похоже, что в телефонах HTC тоже чего-то не хватает. Эта ошибка означает, что между оборудованием BLE и API, вероятно, отсутствует (или работает неправильно) какой-то уровень программного обеспечения. На сегодняшний день я видел, как BLE работает только с Motorola Razr, но, похоже, он ограничен профилем сердечного ритма (и не использует Broadcom API).

person Franck    schedule 03.07.2012
comment
Фактически, вы думаете, что в настоящее время нет возможности разработать приложение для Android с Bluetooth BLE? - person sdespont; 03.07.2012
comment
Мне бы хотелось, чтобы мне сказали иначе, но на данный момент, похоже, он еще не готов. Мы протестировали Motorola Razr и Galaxy S3 и решили дождаться следующих обновлений, прежде чем продолжить разработку наших приложений для Android. Надеюсь, это произойдет очень скоро! - person Franck; 04.07.2012
comment
Кто-то ответит на мой вопрос с хорошим предложением здесь: code.google .com / p / broadcom-ble / issues / detail? id = 1 Сегодня у меня нет тестовых телефонов, поэтому я протестирую завтра утром и опубликую свой отзыв! Хорошего дня - person sdespont; 04.07.2012
comment
Я тоже пытался сделать то же самое. Я пробовал использовать Broadcom API со своим Samsung Galaxy S3 Mini, но, похоже, он не работает. \ Интересно, можем ли мы написать код на C / C ++ для связи с устройством BLE, написать оболочку и получить доступ к этому коду из Android? Было бы возможно? Кто-нибудь пробовал? - person Shraddha Shravagi; 15.04.2013

Если кто-то пишет приложение в зависимости от этого SDK, я хочу сказать одну строчку.

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

person AAnkit    schedule 27.02.2013
comment
Тогда как мы можем заставить его работать? Есть ли другие способы решения проблемы? Откуда я могу получить некоторые рекомендации по запуску для реализации BLE-Android? Заранее спасибо. - person Midhu; 02.03.2013
comment
Я не делаю этого, пока вы не получите публичный APIS, дождитесь следующего выпуска Android, Google / BRDCM работает над этим. Или, если вы хотите реализовать это на уровне ОС, вам нужно написать свой собственный GATT APIS для того же самого. - person AAnkit; 02.03.2013

Какая отличная новость !!!

Последняя версия Android 4.3 (Jelly Bean) теперь поддерживает энергосберегающие аксессуары Bluetooth Smart.

http://www.android.com/about/jelly-bean/

https://developer.bluetooth.org/Pages/Bluetooth-Android-Developers.aspx

Не уверен, что все телефоны будут иметь обновления (даже последний HTC One M7, например), но в следующие телефоны, безусловно, будет встроена эта основная версия.

person sdespont    schedule 04.08.2013

Чтобы уточнить, только начиная с этих доступных в настоящее время устройств HTC вы обнаружите поддержку BLE: HTC One X +, HTC Droid DNA и, конечно же, HTC One и будущие флагманские устройства. Обратите внимание, что начиная с версии 4.3 вам следует перейти на использование стандартного официального Android BLE API, для поддержки устройств до 4.3 вы можете использовать HTC BLE API. См. https://www.htcdev.com/devcenter/opensense-sdk/bluetooth-smart для получения дополнительной информации и примеров кода, поддерживающих оба API.

person dljava    schedule 28.12.2012