【问题标题】:how to check BLE Gatt Client Mode is supported by device?如何检查设备是否支持 BLE Gatt 客户端模式?
【发布时间】:2020-01-23 08:03:31
【问题描述】:

在 android 中,我使用 BLE 两种模式作为 Peripheral 和 Client。但是我想查isBLeGattClientSupported()

正如我们所知,android 中的某些设备无法充当 BLE Gatt 客户端,因此希望抛出此类设备无法充当客户端的异常。

我有 BLE 的其余部分,我的代码在两种模式下都可以正常工作,但是当我让我的设备充当客户端并且该设备无法充当客户端时卡住了。

【问题讨论】:

    标签: android bluetooth-lowenergy


    【解决方案1】:

    这是直接来自android developer guide -

    在运行时,您可以使用 PackageManager.hasSystemFeature() 确定 BLE 可用性:

    提供的java示例(一个Kotlin示例也在同一页面上)检查相同如下 -

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

    这样你可以检查你的设备是否支持BLE并根据需要抛出异常

    【讨论】:

    • 此方法将帮助我们检查 android 设备是否具有 BLE 作为功能,但在我的情况下,我的设备支持 BLE 并且不能充当 BLE Gatt 客户端。我只是想知道如何检查设备是否能够充当 BLE Gatt 客户端
    • @AmandeepTomar 据我所知,所有具有 BLE 功能的设备都能够充当客户端。 (充当服务器通常更密集)
    【解决方案2】:

    所有具有运行 Android 4.3 以上的蓝牙芯片(4.0 及以上)的 android 设备都支持 BLE,并且所有这些设备都支持充当BluetoothGatt 客户端以及文档中提到的BluetoothGattServer

    【讨论】:

    • 不正确。有些设备没有蓝牙芯片,因此不支持 BLE 功能。
    • 是的,我的错,可能有些设备可能没有蓝牙芯片,编辑了我的答案。
    • 理论上厂商可以在Android版本>=4.3的手机中插入一个旧的蓝牙3.0芯片,那么BLE也不支持......
    猜你喜欢
    • 2017-01-24
    • 1970-01-01
    • 2019-03-15
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    相关资源
    最近更新 更多