Как узнать, поддерживает ли устройство Android Bluetooth Low Energy


person abovesun    schedule 18.09.2013    source источник
comment
abovesun, Nexus 7 первого поколения не поддерживает BLE, второе поколение поддерживает (версия 2013 года).   -  person EL45    schedule 11.09.2014
comment
Этого кода должно быть достаточно, чтобы проверить его, поскольку здесь сказано, что Nexus7 первого поколения не поддерживает BLE.   -  person Hugo    schedule 25.02.2016


Ответы (5)


Ваш код действительно хорош, но вы точно добавляете следующий код?

<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

Важный код:

<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>

Поскольку нам нужно убедиться, что приложение может работать успешно,

Однако, если вы хотите сделать свое приложение доступным для устройств, которые не поддерживают BLE, вам все равно следует включить этот элемент в манифест приложения, но установить required = "false"

Этот код мне подходит.

РЕДАКТИРОВАТЬ: Я нашел для вас кое-что интересное о какие устройства совместимы с функцией BLE

person Huy Tower    schedule 02.10.2013
comment
Пользуюсь Galaxy Tab - GT-P1010. Что случилось? Я нашел для вас кое-что полезное о том, какое устройство совместимо с функцией BLE. [en.wikipedia.org/wiki / Bluetooth_low_energy] - person Huy Tower; 03.10.2013

Вы должны проверить "особенность":

PackageManager pm = ctx.getPackageManager();
boolean hasBLE = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE);

Я не совсем уверен, насколько серьезно производители относятся к этому - единственная функция, которую я проверил сам, - это FEATURE_TELEPHONY, и разные производители обрабатывают ее по-разному (и загадочно), поэтому ваш пробег может отличаться, но я считаю, что это так, как вы собираетесь это делать.

person Tom    schedule 18.09.2013
comment
Ой, извините, я, должно быть, слепой - я этого не видел. Похоже, N7 сообщает вам, что у него нет BLE, и это правильно для N7 2012 года. - person Tom; 19.09.2013
comment
Том, похоже, да, но я не могу найти доказательств в официальной спецификации n7 - person abovesun; 03.10.2013

Архитектура Android Bluetooth полностью изменилась с Android 4.1 на 4.2. Любое устройство с Android Jelly Bean 4.2 или более поздней версии не может поддерживать Bluetooth Low Energy, поскольку оно недоступно в новом стеке Bluedroid. Видеть:

http://events.linuxfoundation.org/images/stories/slides/abs2013_rymanowski.pdf

person ClayMontgomery    schedule 18.09.2013
comment
Вы правы в том, что они внедрили новый стек bluetooth в 4.2 (для устройств Nexus), но поддержка BLE в API была добавлена ​​в 4.3, и некоторые устройства Nexus одновременно получили поддержку драйверов для BLE. - person Tom; 19.09.2013
comment
Том прав, я использовал nexus 7 с android 4.3, но он не работает, я полагаю, он не поддерживается на аппаратном уровне - person abovesun; 19.09.2013
comment
Правильно - оригинальный N7 не имеет аппаратной поддержки BLE. - person Tom; 19.09.2013

Вы правильно ввели код, чтобы проверить, поддерживает ли устройство BLE. Эта проверка определяет, есть ли функция android.hardware.bluetooth_le, которая обычно хранится в файле с именем android.hardware.bluetooth_le.xml в месте /system/etc/permissions, к которому вы можете вручную перейти с помощью файлового менеджера на устройстве Android.

person EarthLord    schedule 28.03.2014

На самом деле N7 2012 имеет аппаратную поддержку BLE, но ROM Google не поддерживает ее. У меня есть N72012 с установленным чистым Rom, и я могу подтвердить, что он может подключаться к устройствам BLE.

person David C    schedule 07.04.2015