首页 > 其他分享 >Android设备亮屏熄屏控制CEC设备同步断电上电

Android设备亮屏熄屏控制CEC设备同步断电上电

时间:2024-09-21 11:21:32浏览次数:12  
标签:OFF 熄屏 CEC 亮屏 SCREEN Intent ACTION intent

相关文件:
release/frameworks/base/services/core/java/com/android/server/hdmi/HdmiControlService.java

Android设备亮屏熄屏时会发送相关广播,亮屏广播:“android.intent.action.SCREEN_ON”,熄屏广播:“android.intent.action.SCREEN_OFF”。HdmiControlService.java接收到亮屏熄屏广播时会调用相关方法去控制CEC设备断电上电,相关代码如下:

private class HdmiControlBroadcastReceiver extends BroadcastReceiver {
        @ServiceThreadOnly
        @Override
        public void onReceive(Context context, Intent intent) {
            assertRunOnServiceThread();
            boolean isReboot = SystemProperties.get(SHUTDOWN_ACTION_PROPERTY).contains("1");
            Slog.d(TAG, "HdmiControlBroadcastReceiver intent.getAction(): " + intent.getAction());
            switch (intent.getAction()) {
                case Intent.ACTION_SCREEN_OFF:
                    if (isPowerOnOrTransient() && !isReboot) {
                        onStandby(STANDBY_SCREEN_OFF);
                    }
                    break;
                case Intent.ACTION_SCREEN_ON:
                    Slog.d(TAG, " Intent.ACTION_SCREEN_ON isPowerStandbyOrTransient: " + isPowerStandbyOrTransient());
                    if (isPowerStandbyOrTransient()) {
                        onWakeUp(WAKE_UP_SCREEN_ON);
                    }
                    break;
                case Intent.ACTION_CONFIGURATION_CHANGED:
                    String language = HdmiControlService.localeToMenuLanguage(Locale.getDefault());
                    if (!mMenuLanguage.equals(language)) {
                        onLanguageChanged(language);
                    }
                    break;
                case Intent.ACTION_SHUTDOWN:
                    if (isPowerOnOrTransient() && !isReboot) {
                        onStandby(STANDBY_SHUTDOWN);
                    }
                    break;
            }
        }

如上代码块当接收到Intent.ACTION_SCREEN_OFF熄屏广播时会调用onStandby(STANDBY_SCREEN_OFF)方法控制CEC设备断电,当接收到 Intent.ACTION_SCREEN_ON广播时会调用 onWakeUp(WAKE_UP_SCREEN_ON)方法控制CEC设备上电。

Android设备亮屏熄屏流程,以及CEC相关流程可以参考以下文章,文章描述的比较详细可以认真阅读一下:

Android设备亮屏流程链接
Android设备熄屏流程链接

标签:OFF,熄屏,CEC,亮屏,SCREEN,Intent,ACTION,intent
From: https://blog.csdn.net/weixin_43479637/article/details/142413565

相关文章

  • 遗传与进化计算会议(Genetic and Evolutionary Computation Conference,简称GECCO)多目标
    遗传与进化计算会议(GeneticandEvolutionaryComputationConference,简称GECCO)是进化计算领域内最大的同行评审会议,也是计算机学会(ACM)遗传与进化计算特别兴趣小组(SIGEVO)的主要会议。它涵盖了遗传算法、遗传编程、蚁群优化和群体智能、复杂系统、进化组合优化和元启发式、进......
  • MIAS-LCEC: 基于跨模态掩膜匹配的激光雷达-相机在线标定算法
    MIAS-LCEC:基于跨模态掩膜匹配的激光雷达-相机在线标定新算法,性能超越SoTA同济大学MIASGroup近期发表的论文《Online,Target-FreeLiDAR-CameraExtrinsicCalibrationviaCross-ModalMaskMatching》提出了一个基于跨模态掩膜匹配的激光雷达-相机在线标定算法,性能上......
  • VoceChat - 发现私有云社交的魅力
    VoceChat使用反馈:发现私有云社交的魅力 在这个信息浩如烟海的时代,如何保持有效的沟通与信息共享,成为了我们每一个人都需要面对的挑战。很高兴在这段时间里,体验了VoceChat这款支持独立部署的个人云社交媒体聊天服务。作为一个高度灵活且保护用户数据隐私的通讯工具,VoceChat的表......
  • SmartDeviceControl_FreeRTOS_Hal_Zet6
    SmartDeviceControl_FreeRTOS_Hal_Zet6系统框图显示子设备框图我们不想让文件互相调用遇到的问题:OLED无响应,I2C无法工作解决:使用的是软件I2C,问题在于OLED的驱动中已经包含获取从机应答的函数更新:屏幕为2.8TFT-LCD使用FSMC来模拟8080并口驱动LCDFSMC_D0-FSMC_D......
  • Android开发 - ServiceConnection 接口处理 Service 与客户端(如 Activity)之间的连接解
    什么是ServiceConnectionServiceConnection是一个用于处理Service与客户端(如Activity)之间连接的接口,它让客户端能够绑定到Service并与之进行交互。它定义了两个重要的回调方法,用于管理客户端与Service之间的连接。当客户端绑定到一个Service时,这些回调方法会被调用,允......
  • ASP.NET Core 6.0 ServiceCollection 实现依赖注入
    ASP.NETCore6lOC容器控制反转(InversionofControl,IoC)是一种软件设计模式,其目的是降低代码之间的耦合度。在C#中,可以使用依赖注入(DependencyInjection,DI)来实现控制反转。一般系统分为UI层、BLL层、DAL层、IBLL层和IDAL层,IOC实质是通过抽象IBLL(接口、抽象类......
  • Nuget 管理器》》 error: NU1101: 找不到包 ViewFaceCore
    error:NU1101:找不到包ViewFaceCore错误解释:NU1101错误表示NuGet无法找到名为ViewFaceCore的包。这通常意味着包不存在于指定的源中,或者包名称拼写错误。解决方法:检查包名称:确保ViewFaceCore是正确的包名,没有拼写错误。检查源:确保你的NuGet配置包含了......
  • SourceCodester v1.0 SQL 注入漏洞(CVE-2023-2130)靶场复现
    SourceCodesterPurchaseOrderManagementSystemv1.0是一个实用的工具,适合希望优化采购流程的企业和组织靶场界面直接放sqlmap跑爆数据库爆数据表爆字段爆内容-用户名爆内容-密码sqlmap的md5碰撞sqlmap所有命令点击查看代码爆数据库pythonsqlmap.py-u......
  • 如何找到 Cech 复合体在 1 维上具有持久同源性但 Vietoris Rips 复合体没有的点集?
    我尝试解决的练习:“找到一个点集,使得Cech复合体在1维上具有持久同源性,而VietorisRips复合体则没有。通过计算两个复合物的持久同源性来验证您的解决方案。“这可能吗?据我所知,这两个复合体在欧几里得子空间上重合。我可以改变云的度量,但这感觉就像作弊。我想......
  • 控ID生成->facechain
    https://github.com/modelscope/facechain/blob/main/README_ZH.mdhttps://github.com/modelscope/facechain/blob/main/README_ZH.md【深度学习】FaceChain:APlaygroundforHuman-centricArtificialIntelligenceGeneratedContent_instantbooth算法-CSDN博客文章浏览阅......