鸿蒙开发 开关灯案例代码
时间: 2024-09-11 11:17:02 浏览: 92
基于HarmonyOS 4开发的一款新闻类的鸿蒙APP源代码
鸿蒙系统中的开关灯控制是一个基础的示例,通常用于演示设备操控和事件监听功能。这里有一个简单的代码片段,假设我们已经有了两个设备对象分别代表"灯"和"开关":
```java
import huawei.hiarcsdk.*;
import huawei.hiarcsdk.demo.*;
// 设备ID和设备实例
String deviceId = "your_device_id";
Device device = new Device(deviceId);
// 灯和开关的服务ID
String lightServiceId = "light_service_id";
String switchServiceId = "switch_service_id";
// 获取服务
IActionService actionService = device.getService(actionServiceType);
ISensorEventService sensorEventService = device.getService(sensorEventServiceType);
try {
// 打开灯
Intent intent = new Intent();
intent.setAction(Intent.ACTION_HIACTION_TURN_ON);
Bundle data = new Bundle();
data.putString("service_id", lightServiceId);
intent.putExtras(data);
actionService.sendBroadcast(intent);
// 监听开关状态改变
sensorEventService.registerEventListener(switchServiceId, new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensorType == SensorType.SENSOR_TYPE_SWITCH && event.data.getBoolean(0)) {
Log.d("HMS", "Switch is now turned on");
// 关闭灯
intent = new Intent();
intent.setAction(Intent.ACTION_HIACTION_TURN_OFF);
data = new Bundle();
data.putString("service_id", lightServiceId);
intent.putExtras(data);
actionService.sendBroadcast(intent);
}
}
// ... 其他回调方法省略
}, null);
} catch (Exception e) {
e.printStackTrace();
}
```
在这个例子中,首先打开灯,然后注册一个事件监听器来检测开关的状态变化。当开关被切换到打开状态时,关闭灯。
请注意,实际使用时需要替换`your_device_id`、`light_service_id` 和 `switch_service_id` 为你实际的设备和服务ID,并确保你已经按照华为HarmonyOS的开发文档进行了相应的接入设置。
阅读全文