鸿蒙中 @kit.BasicServicesKit 工具包

本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新

鸿蒙(HarmonyOS)开发中,@kit.BasicServicesKit基础服务工具包,提供设备管理、错误处理、事件通知等核心功能。

一、模块概述

@kit.BasicServicesKit 包含以下核心能力:

  • 设备信息(如设备型号、系统版本)
  • 错误处理BusinessError
  • 事件通信Emitter
  • 剪贴板管理
  • 系统能力检测

二、常用API与示例

1. 设备信息(DeviceInfo)

获取设备基础信息,如型号、品牌等。

import { deviceInfo } from '@kit.BasicServicesKit';

// 获取设备型号
const model: string = deviceInfo.model;
console.log(`设备型号: ${model}`);

// 获取系统版本
const osVersion: string = deviceInfo.osVersion;
console.log(`系统版本: ${osVersion}`);

关键属性

  • model:设备型号(如"Mate 60")
  • brand:品牌(如"HUAWEI")
  • osVersion:HarmonyOS版本(如"4.0.0") 
2. 错误处理(BusinessError)

标准化错误对象,包含错误码和描述。

import { BusinessError } from '@kit.BasicServicesKit';

try {
  // 模拟API调用
  throw { code: 401, message: "参数错误" } as BusinessError;
} catch (err) {
  const error = err as BusinessError;
  console.error(`错误码: ${error.code}, 信息: ${error.message}`);
}

常见错误码

  • 201:用户取消操作
  • 401:参数无效
  • 801:设备不支持 
3. 事件通信(Emitter)

实现组件间或跨页面的轻量级事件通知。

import { emitter } from '@kit.BasicServicesKit';

// 发送事件
emitter.emit({
  eventId: 1, // 事件ID
  data: { key: "value" }
});

// 接收事件
emitter.on(1, (eventData) => {
  console.log("收到事件:", eventData.data.key);
});

// 取消监听
emitter.off(1);

适用场景

  • 跨页面数据更新
  • 状态同步 
4. 剪贴板管理(Pasteboard)

读写系统剪贴板内容。

import { pasteboard } from '@kit.BasicServicesKit';

// 写入文本
pasteboard.setPlainText("复制内容");

// 读取文本
pasteboard.getPlainText((text: string) => {
  console.log("剪贴板内容:", text);
});

注意:需申请权限 ohos.permission.PASTEBOARD_WRITE

5. 系统能力检测(Capability)

检查设备是否支持特定功能。

import { capability } from '@kit.BasicServicesKit';

// 检测蓝牙支持
const hasBluetooth: boolean = capability.check("SystemCapability.Communication.Bluetooth.Core");
console.log("蓝牙支持:", hasBluetooth);

常用能力标识

  • SystemCapability.Multimedia.Camera
  • SystemCapability.Location.GPS 

三、高级用法

1. 全局错误监听
appManager.on('error', (error: BusinessError) => {
  hilog.error(0x0000, "App", `全局错误: ${error.code}`);
});
2. 结合Emitter实现状态共享
// 页面A发送数据更新
emitter.emit({ eventId: 1001, data: { refresh: true } });

// 页面B监听刷新
emitter.on(1001, () => this.loadData());

四、注意事项

  1. 权限申请:部分API需在module.json5中声明权限。
  2. 性能优化:高频事件使用throttledebounce避免过度渲染。

五、完整示例

@Entry
@Component
struct DeviceInfoPage {
  @State model: string = deviceInfo.model;
  @State osVersion: string = deviceInfo.osVersion;

  build() {
    Column() {
      Text(`设备型号: ${this.model}`).fontSize(18)
      Text(`系统版本: ${this.osVersion}`).margin(10)
      Button("复制信息")
        .onClick(() => pasteboard.setPlainText(this.model))
    }
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值