首页 > 解决方案 > Google Fit api BLE 连接问题

问题描述

我想通过 Google Fit SDK 将 Mi Band 3 与我的应用程序连接起来。我面临通过蓝牙连接乐队的问题。如官方 Google Fit 文档中所述 - BLE 传感器我在 Kotlin 中使用以下代码

 var bleScanCallbacks: BleScanCallback = object : BleScanCallback() {
        override fun onDeviceFound(device: BleDevice?) {
            // A device that provides the requested data types is available
        }

        override fun onScanStopped() {
            // The scan timed out or was interrupted
        }
    }

    var response: Task<Void> = Fitness.getBleClient(
        this,
        GoogleSignIn.getLastSignedInAccount(this)!!
    )
        .startBleScan(
            Arrays.asList(DataType.TYPE_STEP_COUNT_DELTA),
            1000, bleScanCallbacks
        )

但它表明

'getBleClient(Activity, GoogleSignInAccount): BleClient!' 已弃用。在 Java 中已弃用

'BleScanCallback' 已弃用。在 Java 中已弃用

它建议使用蓝牙管理器。我是android开发的初学者。Java 解决方案也将起作用。

标签: androidbluetooth-lowenergygoogle-fitandroid-blegoogle-fit-sdk

解决方案


BLE 扫描仪找到您的设备后,您可以连接到其 GATT 服务器。

要连接到 BLE 设备上的 GATT 服务器,请使用该connectGatt()方法。此方法接受三个参数:一个Context对象autoConnect(布尔值,指示是否在 BLE 设备可用时立即自动连接),以及对 a 的引用BluetoothGattCallback

BluetoothGatt bluetoothGatt = device.connectGatt(this, false, gattCallback);

这会连接到 BLE 设备托管的 GATT 服务器,并返回一个 BluetoothGatt 实例,然后您可以使用该实例执行 GATT 客户端操作,例如发现服务、读取和写入 BLE 特性。

有关BluetoothGattCallback示例代码和其他信息: https ://developer.android.com/guide/topics/connectivity/bluetooth-le


推荐阅读