鸿蒙解锁屏事件订阅
·
import commonEvent from '@kit.CommonEventKit';
import { BusinessError } from '@kit.ArkUI';
// 订阅屏幕锁定事件
let subscriber: commonEvent.CommonEventSubscriber | null = null;
let subscribeInfo: commonEvent.CommonEventSubscribeInfo = {
events: ['usual.event.SCREEN_LOCKED', 'usual.event.SCREEN_UNLOCKED'] // 同时订阅锁屏和解锁事件
};
// 创建订阅者
commonEvent.createSubscriber(subscribeInfo, (err: BusinessError, commonEvent.CommonEventSubscriber) => {
if (err) {
console.error(`Failed to create subscriber, Code: ${err.code}, message: ${err.message}`);
return;
}
subscriber = data;
console.info('Succeeded in creating subscriber.');
// 订阅公共事件
commonEvent.subscribe(subscriber, (err: BusinessError, event: commonEvent.CommonEventData) => {
if (err) {
console.error(`Failed to subscribe, Code: ${err.code}, message: ${err.message}`);
return;
}
// 根据事件类型处理
if (event.event === 'usual.event.SCREEN_LOCKED') {
console.info('Screen locked.');
// 执行锁屏后的业务逻辑
} else if (event.event === 'usual.event.SCREEN_UNLOCKED') {
console.info('Screen unlocked.');
// 执行解锁后的业务逻辑
}
});
});
// 在适当的时候取消订阅,例如页面销毁时
function unsubscribe() {
if (subscriber) {
commonEvent.unsubscribe(subscriber, (err: BusinessError) => {
if (err) {
console.error(`Failed to unsubscribe, Code: ${err.code}, message: ${err.message}`);
return;
}
console.info('Succeeded in unsubscribing.');
});
}
}
更多推荐

所有评论(0)