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

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

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

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

INSTALL_FAILED_MISSING_SHARED_LIBRARY 

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

Кто-то сумел проверить примеры проектов широкополосного доступа? И на каком телефоне?

Согласно этому сообщению , на 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, например), но в следующих телефонах обязательно будет встроен этот основной выпуск.

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

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

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

Для тех, кто этого не знает, существуют два разных (несовместимых) API для LOW-ENERGY Bluetooth (BtLE, теперь, по-видимому, называется BT Smart). Один из Broadcom, а другой – от Motorola. Неудивительно, что каждый работает только на телефоне с чипами этого вендора.

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

В HTC One X и One S используется чип Qualcomm Bluetooth, а не Broadcom. Поэтому SDK Broadcom не ожидается. Существует 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/

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

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

BleFindMeClient действительно работает на HTC 1X + в сочетании с TI CC2540-mini Keyfob aka 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 ) { ... } 

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

Три шага:

  1. Не включать в файл манифеста.
  2. В проекте « Свойства» → « Путь сборки Java» → « Библиотеки»Добавить внешнюю банку , добавить расширенный баннер.
  3. В проекте « Свойства» → « Путь сборки Java» → « Заказ и экспорт» , проверьте включенную банку на шаге 2.

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

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

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

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

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

Последняя версия 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, например), но в следующих телефонах обязательно будет встроен этот основной выпуск.

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