#跟着坚果学鸿蒙#控制类小器件
#跟着坚果学鸿蒙#概述 基本概念 控制类小器件指的是设备上的 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);
}
更多推荐
所有评论(0)