概念
BLE:Bluetooth Low Energy, 低功耗蓝牙
蓝牙技术联盟官网 https://www.bluetooth.com/
HarnomyOS蓝牙
1) 蓝牙开发指南
2) HarmonyOS 官方BLE蓝牙Demo
https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/HarmonyOS-BleBluetoothDemo
Android蓝牙
1)蓝牙概述
https://developer.android.google.cn/guide/topics/connectivity/bluetooth?hl=zh-cn
2)BLE概述
https://developer.android.google.cn/guide/topics/connectivity/bluetooth-le?hl=zh-cn
实验场景
使用huawei watch 3 与 华为手机进行蓝牙文字聊天
设备条件
1) 设备三个:一块 huawei watch 3手表 和 两台支持BLE的华为手机
2)WIFI环境
3)开发环境
. 鸿蒙应用开发环境
. Android应用开发环境
实验步骤
1 ) 手机与手机双向通信 ===> 2) 手机与手表双向通信
备注:为了熟悉BLE,及使用其进行数据传输,因此通过手机之间调试,学习全部流程
1)Android手机蓝牙聊天应用开发
效果图见 https://github.com/harveyblack/HarveyBleChat
在操作时,需要在设备列表页标题栏,将一台手机上展示的“中心设备”选中,另外一台手机不做选中
备注:
Android蓝牙开发-Ble通讯–扫描,连接,发送和接收数据,分包解包
2) 华为手表聊天应用开发
效果图
点击“发送问候”按钮,则会给配对端蓝牙发送固定好的文字
“接收:” ,手表在接收到配对蓝牙发送过来的文字时,则在此后边展示
基于HarmonyOS系统开发的此功能,采用js+java混合开发,java实现蓝牙操作部分
在使用手机端应用配合时,请在手机端应用顶部不要选中“中心设备”
java部分核心逻辑参照官方demo中的“完整示例”部分实现,具体参考BlePeripheralAbilitySlice.java类中的逻辑,记住去除页面相关代码,不需要继承AbilitySlice
注意需要将如下几个值修改为和手机端应用一样,手机端这个值在CustomBluetoothUUID.java文件中
private static final String SERVICE_UUID = "00001887-0000-1000-8000-00805f9b34fb";
private static final String NOTIFY_CHARACTER_UUID = "00002a10-0000-1000-8000-00805f9b34fb";
private static final String WRITE_CHARACTER_UUID = "00002a11-0000-1000-8000-00805f9b34fb";