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

Кажется, первое поколение Nexus 7 не поддерживает Bluetooth Low Energy, по крайней мере, когда я точно следую инструкциям из учебника

http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

У меня есть конец приложения по следующему коду:

if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show(); finish(); } 

Конечно, я проверил, что Bluetooth включен.

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

UPDATE: я использую Android 4.3.

Solutions Collecting From Web of "Как узнать, поддерживает ли Android-устройство Bluetooth Low Energy"

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

 <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, вы должны включить этот элемент в манифест вашего приложения, но установите обязательный = "false"

Этот код работает для меня.

EDIT: я нашел для вас что- то хорошее, о том, какие устройства совместимы с функцией BLE

Вы должны проверить «функцию»:

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

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

Архитектура 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

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

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