android - 如何扫描并连接到一个片段中的蓝牙设备并读取另一个片段中的特征?
问题描述
我刚开始使用 Kotlin 学习 Android 开发,并且正在开发一个应用程序。
我还创建了一个带有 BLE 的 Arduino 设备,它可以发送我自行车的当前速度。
我正在构建的应用程序有一个活动,它将承载三个片段。
- 第一个片段允许用户选择自行车并自动启动第二个片段
- 第二个片段扫描并连接到我之前提到的 Arduino 设备,这是在 viewModel 中完成的。
我正在使用 BluetoothDevice 和 BluetoothGatt 来扫描、连接和读取特征。
连接成功后,启动第三个片段 - 第三个片段用于启用通知、读取特征并显示值。
问题
bluetoothGatt 对象是在第二个片段中创建的,它不能作为参数传递给第三个片段,因此第三个片段不能使用它来启用通知并读取其特征。另外,我知道用于自动连接的设备名称和 MAC 地址。
我阅读了有关后台服务、广播接收器等的信息。我不确定该走哪条路
请告诉我这样做的最佳方法是什么,以便我可以开始学习。
解决方案
推荐阅读
- docusignapi - 使用 eSign SDK 创建 DocuSign 用户而不发送激活电子邮件?
- sql-server - 仅在添加“GO”命令后运行的 SQL 脚本
- vba - 如何在发送前在电子邮件中显示附件,但在发送后从电子邮件底部删除文件名
- c# - 如何使用 ODP.NET 检查 ReturnValue 参数是否为空?
- html - 如何在浏览器上使用 styled-components CDN 构建?
- powerbi - Power BI:由于客户共享多个分支机构,前 5 名客户利润百分比图表错误
- docker - 如何连接redis等局域网机器服务?
- java - 如何快速测试dao,service for springboot,junit不能满足我的需求
- javascript - 如何从svg中删除转换?
- node.js - Sequelize findAll() with where-parameter 返回 null 而 findByPk() 返回正确的数据