HarmonyOS鸿蒙Next中设置中的蓝牙
HarmonyOS鸿蒙Next中设置中的蓝牙 像设置那样能搜索蓝牙能匹配设备,能看到其他设备的名称
3 回复
提供一个扫描蓝牙设备的demo,并把扫描到的设备列表显示处理
代码示例
import connection from '@ohos.bluetooth.connection';
import { BusinessError } from '@ohos.base';
import { promptAction } from '@kit.ArkUI';
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
import common from '@ohos.app.ability.common';
interface Device {
name?: string
deviceId?: string
}
@Entry
@Component
struct Index {
private context = this as common.UIAbilityContext
@State findList: Device[] = []
aboutToAppear(): void {
const permissions: Array<Permissions> = ['ohos.permission.ACCESS_BLUETOOTH'];
let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(this.context, permissions).then((data) => {
// 授权成功
}).catch((err: BusinessError) => {
console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);
})
}
build() {
Flex({ direction: FlexDirection.Column }) {
Row() {
Button("扫描蓝牙").onClick(() => {
try {
connection.startBluetoothDiscovery();
console.info('startBleScan success')
promptAction.showToast({
message: "已打开"
})
} catch (err) {
promptAction.showToast({
message: "蓝牙开关未打开"
})
}
connection.on('bluetoothDeviceFind', (data: string[]) => {
console.log('data: ' + JSON.stringify(data) + connection.getRemoteDeviceName(data[0]))
if (!this.findList.find(item => item.deviceId === data[0])) {
this.findList.push({
name: connection.getRemoteDeviceName(data[0]),
deviceId: data[0]
})
}
});
})
Button("停止扫描").onClick(() => {
try {
connection.stopBluetoothDiscovery();
console.info('stopBleScan success');
promptAction.showToast({
message: "停止扫描"
})
} catch (err) {
promptAction.showToast({
message: "蓝牙已关闭"
})
}
})
Button("清空").onClick(() => {
this.findList = []
})
}
List() {
ForEach(this.findList, (item: Device) => {
ListItem() {
Flex({ alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) {
Column() {
Text(`设备名称:${item?.name}`)
Text(`设备id:${item?.deviceId}`).fontColor("#ffcbcbcb").fontSize(12)
}
.alignItems(HorizontalAlign.Start)
Row({ space: 5 }) {
Button("链接").width(60).height(20).fontSize(12).onClick(() => {
try {
connection.pairDevice(item.deviceId, () => {
promptAction.showToast({
message: "配对成功"
})
});
} catch (err) {
console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}
})
}
}
.height(50).backgroundColor("#fff").width("100%").borderRadius(10).padding(6)
}
.padding(4)
})
}
.height(200).width("100%").flexGrow(1).flexShrink(1).flexBasis(1)
}
.padding(10).width('100%').height('100%').backgroundColor("#ffcdcdcd")
}
}
说明
- 我这边测试是可以扫描设备显示名称,调用的是
startBluetoothDiscovery方法。 connection.startBluetoothDiscovery是经典蓝牙扫描,ble.startBLEScan是低功耗蓝牙扫描。ble的startBLEScan是只能扫描到ble设备,如果想要扫描到系统设置中的所有设备,需要去调用connection.startBluetoothDiscovery- 可以使用
connection.getRemoteDeviceClass(data[0])获取蓝牙设备信息
设备枚举参考
更多关于HarmonyOS鸿蒙Next中设置中的蓝牙的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,蓝牙设置允许用户管理和连接蓝牙设备。用户可以通过“设置”应用中的“蓝牙”选项来开启或关闭蓝牙功能。在蓝牙设置界面,系统会显示可用的蓝牙设备列表,用户可以选择设备进行配对和连接。配对成功后,设备会显示为已连接状态,并可以在设备详情中查看连接状态和已配对设备列表。此外,用户还可以通过蓝牙设置界面取消配对或删除已配对的设备。HarmonyOS鸿蒙Next的蓝牙功能支持多种蓝牙协议,如A2DP、HFP、AVRCP等,以确保与各类蓝牙设备的兼容性。在蓝牙设置中,用户还可以根据需要调整蓝牙设备的音频输出和输入设置,以优化音频体验。
在HarmonyOS(鸿蒙Next)中设置蓝牙的步骤如下:
- 进入设置:打开手机的“设置”应用。
- 选择蓝牙:在设置菜单中找到并点击“蓝牙”选项。
- 开启蓝牙:点击蓝牙开关,将其打开。
- 搜索设备:系统会自动搜索附近的蓝牙设备,等待设备出现在列表中。
- 配对连接:点击要连接的设备名称,按照提示完成配对。
通过这些步骤,你可以在HarmonyOS中轻松设置和使用蓝牙功能。

