Platform: RK3568
OS: Android 12
Kernel: v4.19.206
SDK Version:android-12.0-mid-rkr1


问题

在测试Android12时发现,长按power键没有反应。对比Android11,是会弹出关机菜单,有emergency,power off和 reboot 这几个选项。

解决方案

frameworks/base/core/res/res/values/config.xml 中修改config_longPressOnPowerBehavior的属性值

简单分析

查了下这应该是Android12的新特性,长按关机默认功能是唤醒Google Assistant,我的机器中没有预装该应用所以就没有任何反应。
可以在Settings——System——Gestures——Press and hold power button中关闭Hold for Assistant功能,关闭后测试长按power键是可以直接关机,但没有出现任何提示。这样也不太好,最好是能和Android11的效果类似。

跟下settings源码

packages/apps/Settings/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java

可以看到getSummary() 的显示是根据getPowerButtonValue() 的值来判断的

@Overridepublic CharSequence getSummary() {final int powerButtonValue = getPowerButtonValue();if (powerButtonValue == LONG_PRESS_POWER_ASSISTANT_VALUE) {return mContext.getString(R.string.power_menu_summary_long_press_for_assist_enabled);} else if (powerButtonValue == LONG_PRESS_POWER_GLOBAL_ACTIONS) {return mContext.getString(R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu);} else {return mContext.getString(R.string.power_menu_summary_long_press_for_assist_disabled_no_action);}   }   

getPowerButtonValue() 是获取POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE的值

private int getPowerButtonValue() {return Settings.Global.getInt(mContext.getContentResolver(),POWER_BUTTON_LONG_PRESS_SETTING,mContext.getResources().getInteger(POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE));}
/*** Value used for long press power button behaviour when the Assist setting is disabled.* If this value matches Assist setting, then it falls back to Global Actions panel or* power menu, depending on their respective settings.
*/
private static final int POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE =com.android.internal.R.integer.config_longPressOnPowerBehavior;

这边可以看到最终是获取 config_longPressOnPowerBehavior 的属性值,该属性值是在frameworks/base/core/res/res/values/config.xml中定义,各个值代表的含义已注释得很明确了

<!-- Control the behavior when the user long presses the power button.0 - Nothing1 - Global actions menu2 - Power off (with confirmation)3 - Power off (without confirmation)4 - Go to voice assist5 - Go to assistant (Settings.Secure.ASSISTANT)--><integer name="config_longPressOnPowerBehavior">5</integer>

测试属性设置为1,长按power键,出现如下界面,类似Android11的效果了

属性设置为2,长按power键,出现如下关机确认界面

这两个属性配置基本可以满足需求,问题解决

参考资料

https://baijiahao.baidu.com/s?id=1717361143132016535&wfr=spider&for=pc

https://segmentfault.com/a/1190000023222360?utm_source=tag-newest


欢迎留言讨论,感谢阅读~

RK3568 Android12 长按power键功能设置相关推荐

  1. RK3588长按power键强制关机的按键时间设置

    RK3588长按power键强制关机的按键时间设置 本文适用于RK3588+RK806(电源管理芯片)的方案,power(电源)键是直接控制RK806来控制RK3588的上下电,可以实现短按开机.长按 ...

  2. Android 5.1 长按power键流程分析

    安全模式简述 android平台,在长按power / menu键时会快速进入一个模式选择,部分定制的平台是直接进入安装模式,也可以定制成公司需要的一些特定功能模式,比如报警 ... power 也属 ...

  3. Android 系统修改长按关机键功能

    系统环境 瑞星微 px30 android 8.1系统 要实现的功能 原本长按power键的功能是弹出一个选择对话框,关机和重启功能,长按两个选择项会提示是否要进入安全模式,现将它改成长按恢复出厂功能 ...

  4. Android rom开发:长按Power键关机/重启优化,告别长时间等待

    最近在项目上碰到了这样的问题:在某个apk界面长按power键来选择关机或者重启,apk会出现重启现象,并且更加尴尬的是,在另外的方案上面对比后发现没有问题,明明白白地显示这是系统的锅. 好吧,改!仔 ...

  5. chart控件支持鼠标滚轮放大缩小_强大的鼠标侧键功能设置工具:X-Mouse Button Control...

    Update:以下内容仅适用于 Windows 系统!AutoCAD for mac 用户该怎么办,下次再细说... 作为 AutoCAD 用户,一个好的鼠标,能让工作更加高效和身心健康!所以,一定要 ...

  6. 1.[Sprd]-(Sprd9820e安卓4.4平台user版开启长按power键开启sysdump分析)

    1.sp9820e安卓4.4开启长按power开启sysdump 1.1uboot开启arm reset u-boot15/include/configs/sp9820e_2h10.h #if DEB ...

  7. Android 5.1长按电源键添加重启功能

    原址:http://blog.csdn.net/zhoumushui 现在长按Power键只有一个关机键,需要添加一个重启,以下是我的添加步骤: 1.在frameworks/base/core/res ...

  8. 长按android版本,Android系统长按power实现键硬件关机—高通sdm845

    1.软件层关机,跳过长按power键选择界面,直接关机 path:frameworks/base/services/core/java/com/android/server/policy/PhoneW ...

  9. Android系统长按power实现键硬件关机—高通sdm845

    1.软件层关机,跳过长按power键选择界面,直接关机 path:frameworks/base/services/core/java/com/android/server/policy/PhoneW ...

  10. android7.0 电源(Power)键流程

    对于Power键的分析文章较多,本文从android7.0源码的角度大致分析下电源键的流程!参考博主连接:http://blog.csdn.net/gaugamela/article/details/ ...

最新文章

  1. Linux Linux程序练习十一(网络编程大文件发送UDP版)
  2. 负载均衡算法-权重轮询均衡
  3. 软件工程概论作业:返回一个整数数组中最大子数组的和
  4. Windows下C 用 Socket 发送图片--基础
  5. [转]VS2010安装说明及所有安装出错的解决办法
  6. 牛客假日团队赛8:H.Cell Phone Network(最小支配集)
  7. ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0情况解决
  8. native2ascii命令
  9. git安装错误:can not read system config
  10. 常对象和常函数的关系 const
  11. 第8-9讲 视觉里程计2
  12. Java 支付对接之微信/支付宝扫码支付(也就是H5支付)
  13. 【代码笔记】多线程游戏开发——伏魔记:第一步——开始游戏界面实现(一)...
  14. 2022华为机试真题 C++ 实现【九宫格按键输入法】
  15. CrystalQuartz实现Quartz的window服务的远程管理
  16. Django 文档 -- 记录我的Django学习之旅
  17. 汉字转换为拼音的JavaScript库
  18. 电子商务法律规范与伦理道德(七)
  19. 【系统篇 / 文件】01. 文件服务安装与配置 ❀ Windows Server 2008 R2
  20. scrapy爬虫1--基础设置篇

热门文章

  1. MER:高通量测序应用于病原体和害虫诊断——综述与实用性建议
  2. git 出现 Author identity unknown 问题一
  3. 小米,红米 root Magisk(面具)安装教程
  4. maven仓库如何加载瀚高数据库JDBC驱动
  5. mysql脏读和幻读区别_数据库的脏读、不可重复读和幻读区别
  6. Mysql比较运算符实战
  7. “征信污点”可消除?征信中心:不可能
  8. php模拟QQ登录获得skey码,请教:QQ授权第三方登录论坛之authorize模拟访问,一直失败...
  9. 计算机英语(王艺)翻译(unit1-unit5)
  10. 如何用计算机自动求和,如何在excel中自动求和 自动求和的解决方法及步骤