如何确定Android设备是否支持蓝牙低功耗

似乎Nexus 7第一代不支持蓝牙低功耗,至少当我从教程中完全按照步骤进行操作时

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(); } 

当然,我检查,蓝牙启用。

所以问题是,如何确定设备是否支持蓝牙低功耗标准?

更新:我正在使用android 4.3

您的代码非常好,但是您是否准确添加了以下代码?

   

重要的代码是:

  

因为我们需要确保应用程序可以成功运行,

但是,如果您想让您的应用程序可用于不支持BLE的设备,您仍应将此元素包含在应用程序的清单中,但必须设置required =“false”

该代码适用于我。

编辑:我find了一些关于哪些设备与BLEfunction兼容的好东西

你应该检查’function’:

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

我不太确定制造商对此有多认真 – 我自己检查的唯一function是FEATURE_TELEPHONY,不同制造商以不同(和令人费解)的方式处理它,所以你的里程可能会有所不同,但我相信这是你打算这样做的方式。

Android蓝牙架构完全从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。 检查是否有functionandroid.hardware.bluetooth_le ,它通常存储在位置/system/etc/permissions名为android.hardware.bluetooth_le.xml的文件中,您可以手动导航到Android中的文件管理器设备。

实际上N7 2012确实有BLE的硬件支持,但谷歌的rom不支持它。 我有一个安装了纯度Rom的N72012,可以确认它可以连接到BLE设备。