#跟着坚果学鸿蒙#概述 基本概念 控制类小器件指的是设备上的 LED 灯和振动器。其中,LED 灯主要用作指示(如 充电状态)、闪烁功能(如三色灯)等;振动器主要用于闹钟、开关机振动、来 电振动等场景。

运作机制 控制类小器件主要包含以下四个模块:控制类小器件 API、控制类小器件 Framework、控制类小器件 Service、HD_IDL 层。

• 控制类小器件 API:提供灯和振动器基础的 API,主要包含灯的列表查询、打开灯、 关闭灯等接口,振动器的列表查询、振动器的振动器效果查询、触发/关闭振动器等 接口。 • 控制类小器件 Framework:主要实现灯和振动器的框架层管理,实现与控制类小器 件 Service 的通信。 • 控制类小器件 Service:实现灯和振动器的服务管理。 • HD_IDL 层:对不同设备(车机、智能穿戴、智慧屏等)的适配。

约束与限制 • 在调用 Light API 时,请先通过 getLightIdList 接口查询设备所支持的灯的 ID 列表,以 免调用打开接口异常。 • 在调用 Vibrator API 时,请先通过 getVibratorIdList 接口查询设备所支持的振动器的 ID 列表,以免调用振动接口异常。 • 在使用振动器时,开发者需要配置请求振动器的权限 ohos.permission.VIBRATE,才能 控制振动器振动。

Light 开发指导 场景介绍 当设备需要设置不同的闪烁效果时,可以调用 Light 模块,例如,LED 灯能够设 置灯颜色、灯亮和灯灭时长的闪烁效果。 说明 使用该功能依赖于硬件设备是否具有 LED 灯。

接口说明 灯模块主要提供的功能有:查询设备上灯的列表,查询某个灯设备支持的效果, 打开和关闭灯设备。LightAgent 类开放能力如下,具体请查阅 API 参考文档

开发步骤 1. 查询硬件设备上灯的列表。 2. 查询指定的灯是否支持指定的闪烁效果。 3. 创建不同的闪烁效果。 4. 关闭指定的灯。

private LightAgent lightAgent = new LightAgent(); 
 
@Override 
public void onStart(Intent intent) { 
 super.onStart(intent); 
 super.setUIContent(ResourceTable.Layout_light_layout); 
 
 // ... 
 
 // 查询硬件设备上的灯列表 
 List<Integer> myLightList = lightAgent.getLightIdList(); 
if (myLightList.isEmpty()) { 
 return; 
 } int lightId = myLightList.get(0); 
 
 // 查询指定的灯是否支持指定的闪烁效果 
 boolean isSupport = lightAgent.isEffectSupport(lightId, 
LightEffect.LIGHT_ID_KEYBOARD); 
 
 // 创建指定效果的一次性闪烁 
 boolean turnOnResult = lightAgent.turnOn(lightId, 
LightEffect.LIGHT_ID_KEYBOARD); 
 // 创建自定义效果的一次性闪烁 
 LightBrightness lightBrightness = new LightBrightness(255, 255, 
255); 
 LightEffect lightEffect = new LightEffect(lightBrightness, 1000, 
1000); 
 boolean turnOnEffectResult = lightAgent.turnOn(lightId, 
lightEffect); 
 
 // 关闭指定的灯 
 boolean turnOffResult = lightAgent.turnOff(lightId); 
} 

 

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐