2、鸿蒙BLE开发环境搭建:DevEco Studio安装、SDK配置、创建第一个BLE工程、模拟器与真机调试
好,咱们直接进入正题。做鸿蒙BLE开发,第一步就是把家伙事儿备齐。说白了,就是装好IDE、配好SDK、然后跑通第一个工程。这一步要是卡住了,后面全是白搭。我见过不少新手在这上面折腾半天,其实只要按步骤来,十分钟就能搞定。
2.1 DevEco Studio安装:别下错版本
DevEco Studio是华为官方的IDE,基于IntelliJ IDEA定制的。我个人习惯直接去华为开发者官网下载,别去第三方站点,你想想看,万一夹带点私货,那可就麻烦了。
安装过程很简单,双击安装包,一路Next就行。但有两点我建议你注意:
- 安装路径不要有中文——这是老生常谈了,但总有人踩坑。
- 记得勾选“添加到PATH”——方便后续在命令行里调用hdc等工具。
2.2 SDK配置:选对API版本
装好IDE后,第一件事就是配SDK。打开DevEco Studio,点击 Configure → Settings → SDK Manager。你会看到一堆API版本,从API 6到API 12都有。
做BLE开发,我建议你至少选API 9以上。为什么?因为API 9开始,鸿蒙的蓝牙框架才真正稳定下来。API 8的BLE接口有不少坑,比如连接回调有时会丢失。嗯,这里要注意,如果你要兼容老设备,可以同时装多个版本。
https://repo.huaweicloud.com。
配好SDK后,记得检查一下 build.gradle 里的配置:
// 在entry模块的build.gradle中
ohos {
compileSdkVersion 9
defaultConfig {
compatibleSdkVersion 9
}
}
这里 compileSdkVersion 和 compatibleSdkVersion 最好保持一致,避免编译时出现奇怪的兼容性问题。
2.3 创建第一个BLE工程:从模板开始
SDK配好了,咱们来创建第一个工程。点击 File → New → Create Project。在模板选择里,找到 Empty Ability 或者 Feature Ability。我个人建议选 Empty Ability,干净利落,没有多余代码干扰你理解。
工程创建好后,你会看到这样的目录结构:
MyBleApp/
├── entry/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/example/mybleapp/
│ │ │ │ └── MainAbilitySlice.java
│ │ │ ├── resources/
│ │ │ └── config.json
│ │ └── test/
│ └── build.gradle
├── gradle/
└── build.gradle
接下来,我们要在 config.json 里声明蓝牙权限。这是很多人容易忘的一步。不声明权限,代码写得再漂亮也白搭。
// config.json 中的module部分
"reqPermissions": [
{
"name": "ohos.permission.USE_BLUETOOTH"
},
{
"name": "ohos.permission.DISCOVER_BLUETOOTH"
},
{
"name": "ohos.permission.LOCATION"
}
]
LOCATION 权限也是必须的,因为低功耗蓝牙扫描会用到位置信息。我曾经有个项目,扫描死活不出设备,查了半天才发现是忘了加位置权限。
2.4 模拟器与真机调试:别全指望模拟器
工程写好了,总得跑起来看看效果。DevEco Studio提供了两种调试方式:模拟器和真机。
2.4.1 模拟器调试
模拟器在 Tools → Device Manager 里启动。选择 Phone 类型的模拟器,点击启动就行。模拟器的好处是方便,不用插线,随时可以测。
但说实话,BLE开发不能全指望模拟器。为什么?因为模拟器里的蓝牙是虚拟的,它模拟不了真实的信号衰减、连接中断这些情况。我建议你只在模拟器上做UI调试和基本逻辑验证,真正的蓝牙通信测试,一定要上真机。
2.4.2 真机调试
真机调试需要做几步准备:
- 打开开发者模式:在手机设置里,连续点击“版本号”7次,直到提示“您已处于开发者模式”。
- 开启USB调试:在开发者选项里,打开
USB调试和仅充电模式下允许ADB调试。 - 连接电脑:用数据线连上电脑,手机上会弹出一个授权窗口,点“允许”。
- 在IDE里选择设备:点击运行按钮旁边的设备下拉框,选择你的手机。
如果IDE识别不到设备,可以试试在命令行里输入 hdc list targets。如果返回空,说明驱动没装好。去华为官网下载 HiSuite 或者手动安装USB驱动就行。
2.5 第一个BLE扫描代码:验证环境
环境搭好了,咱们写几行代码验证一下。在 MainAbilitySlice.java 里,添加一个简单的BLE扫描:
import ohos.bluetooth.BluetoothHost;
import ohos.bluetooth.ble.BleCentralManager;
import ohos.bluetooth.ble.BleScanCallback;
import ohos.bluetooth.ble.BleScanResult;
public class MainAbilitySlice extends AbilitySlice {
private BleCentralManager centralManager;
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
// 初始化BLE中心管理器
centralManager = new BleCentralManager(this);
// 开始扫描
centralManager.startScan(new BleScanCallback() {
@Override
public void onScanResult(BleScanResult result) {
// 打印扫描到的设备
System.out.println("发现设备: " + result.getDevice().getDeviceName());
}
@Override
public void onScanFailed(int errorCode) {
System.out.println("扫描失败,错误码: " + errorCode);
}
});
}
@Override
protected void onStop() {
super.onStop();
// 记得停止扫描,不然耗电很快
if (centralManager != null) {
centralManager.stopScan();
}
}
}
这段代码很简单,就是启动BLE扫描,然后把发现的设备名打印出来。如果你在真机上跑起来,Log里能看到周围蓝牙设备的名字,那就说明环境完全OK了。
好了,环境搭建就到这里。下一章咱们会深入BLE的扫描参数配置,比如怎么设置扫描间隔、怎么过滤特定设备。这些东西在实际项目中非常关键,搞不好就会把功耗做得很差。咱们到时候细聊。