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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (5)
  • 关注 (0)
  • 查看 (160)

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

我当然查过了,蓝牙已经启用了。

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

我使用的是安卓4.3

提问于
用户回答回答于

其实N7 2012确实有BLE的硬件支持,但是Google的ROM不支持它。我有一个安装了purity Rom的N72012,可以确认它可以连接到BLE设备。

用户回答回答于

已经正确地提供了检查支持设备是否有BLE的代码。该检查将查看是否存在该功能。android.hardware.bluetooth_le通常存储在名为android.hardware.bluetooth_le.xml在那个地方/system/etc/permissions可以使用Android设备中的文件管理器手动导航到它。

用户回答回答于
用户回答回答于

你应该检查“feature”:

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

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

用户回答回答于

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

<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”

参见哪些设备与BLE功能兼容?

扫码关注云+社区

领取腾讯云代金券