android - 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 解决方案也将起作用。
解决方案
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
推荐阅读
- javascript - 如何解决下拉长度问题
- javascript - jQuery从json中获取total
- c# - XML 中的最大日期时间
- python - 如何在 python 窗口中显示和管理 HTML
- jquery - 如何安排延迟 5 秒发送 ajax 请求?
- node.js - 如何将哈希存储在 Redis 的列表中?
- java - Spring Boot Devtools 不适用于 Tomcat Embed Jasper
- ios - 如何禁用另一个类的按钮?
- excel - 用特殊值绘制表格计数(Numbers 软件)
- c++11 - 如何使用 c++ 中的 priority_queue 类为一组元素构建堆?