HarmonyOS 如何获取锁屏事件

视频播放中需要监听锁屏事件,锁屏后需要暂停播放,现无法获取锁屏事件。

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

参考demo:

import Base from '@ohos.base';
import CommonEventManager from '@ohos.commonEventManager';

let subscriber:CommonEventManager.CommonEventSubscriber; //用于保存创建成功的订阅者对象,后续使用其完成订阅及退订的动作

//订阅者信息
let subscribeInfo:CommonEventManager.CommonEventSubscribeInfo = {
  events: [CommonEventManager.Support.COMMON_EVENT_SCREEN_LOCKED, CommonEventManager.Support.COMMON_EVENT_SCREEN_UNLOCKED]
};

//发布公共事件回调
function subscribeCB(err:Base.BusinessError, data:CommonEventManager.CommonEventData) {
  if (err) {
    console.error(`publish failed, code is ${err.code}, message is ${err.message}`);
  } else {
    if (data.event == CommonEventManager.Support.COMMON_EVENT_SCREEN_LOCKED) {
      console.info("MWB ",`lock screen`);
    } else if (data.event == CommonEventManager.Support.COMMON_EVENT_SCREEN_UNLOCKED) {
      console.info("MWB ",`unlock screen`);
    }
  }
}


//创建订阅者回调
function createCB(err:Base.BusinessError, commonEventSubscriber:CommonEventManager.CommonEventSubscriber) {
  if(!err) {
    console.info("createSubscriber");
    subscriber = commonEventSubscriber;
    try {
      CommonEventManager.subscribe(subscriber, subscribeCB);
    } catch (error) {
      let err:Base.BusinessError = error as Base.BusinessError;
      console.error(`subscribe failed, code is ${err.code}, message is ${err.message}`);
    }
  } else {
    console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
  }
}

//创建订阅者
try {
  CommonEventManager.createSubscriber(subscribeInfo, createCB);
} catch (error) {
  let err:Base.BusinessError = error as Base.BusinessError;
  console.error(`createSubscriber failed, code is ${err.code}, message is ${err.message}`);
}

@Entry
@Component
struct ScreenLockEventManageDemo {

  build() {
    Column() {
      Text('HELLO WORLD')
        .fontSize('20')
    }
    .width('100%')
    .height('100%')

  }
}

公共事件模块参考如下:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-commoneventmanager-V5

锁屏的公共事件定义:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/commonevent-screenlock-V5

分享
微博
QQ
微信
回复
2天前
相关问题
openharmony4.0 如何去除功能
2527浏览 • 0回复 待解决
如何通过代码随意修改图片?
5514浏览 • 1回复 待解决
如何获取事件和数据
2201浏览 • 1回复 待解决
如何实现软件退出需要密码?
2425浏览 • 1回复 待解决
HarmonyOS 如何区分截和录事件
53浏览 • 1回复 待解决
HarmonyOS 如何监听屏幕截事件
50浏览 • 1回复 待解决
悬浮球能调用功能吗?
558浏览 • 1回复 待解决
鸿蒙系统有没有调用的接口?
6930浏览 • 1回复 待解决
HarmonyOS如何获取图片
536浏览 • 1回复 待解决
华为手机是否支持自定义页面?
3996浏览 • 1回复 待解决
如何获取当前是横还是竖啊?
4937浏览 • 1回复 待解决
HarmonyOS page中如何获取返回键事件
443浏览 • 1回复 待解决