首页 > 解决方案 > 如何扫描并连接到一个片段中的蓝牙设备并读取另一个片段中的特征?

问题描述

我刚开始使用 Kotlin 学习 Android 开发,并且正在开发一个应用程序。
我还创建了一个带有 BLE 的 Arduino 设备,它可以发送我自行车的当前速度。

我正在构建的应用程序有一个活动,它将承载三个片段。

  1. 第一个片段允许用户选择自行车并自动启动第二个片段
  2. 第二个片段扫描并连接到我之前提到的 Arduino 设备,这是在 viewModel 中完成的
    我正在使用 BluetoothDevice 和 BluetoothGatt 来扫描、连接和读取特征。
    连接成功后,启动第三个片段
  3. 第三个片段用于启用通知、读取特征并显示值。

问题

bluetoothGatt 对象是在第二个片段中创建的,它不能作为参数传递给第三个片段,因此第三个片段不能使用它来启用通知并读取其特征。

另外,我知道用于自动连接的设备名称和 MAC 地址。

我阅读了有关后台服务、广播接收器等的信息。我不确定该走哪条路

请告诉我这样做的最佳方法是什么,以便我可以开始学习。

标签: androidkotlinbluetooth-lowenergybluetooth-gatt

解决方案


推荐阅读