当前位置: 首页 > wzjs >正文

祺越网站建设乐清市网站建设公司

祺越网站建设,乐清市网站建设公司,暗网是什么网站,公司专业网站建设20250602在荣品的PRO-RK3566开发板的Android13下打开关机对话框 2025/6/2 15:07 缘起:需要在荣品的PRO-RK3566开发板的Android13下,打开/增加关机对话框这个功能。 因为手机都有。那我们就找资料吧。 参考资料: https://blog.csdn.net/terry_…

20250602在荣品的PRO-RK3566开发板的Android13下打开关机对话框
2025/6/2 15:07


缘起:需要在荣品的PRO-RK3566开发板的Android13下,打开/增加关机对话框这个功能。
因为手机都有。那我们就找资料吧。


参考资料:
https://blog.csdn.net/terry_xiwang/article/details/122721784
RK3568 Android12 长按power键功能设置

Platform: RK3566
OS: Android 13
Kernel: v5.10.157
SDK Version:?


console:/ # uname -a
Linux localhost 5.10.157 #2 SMP PREEMPT Fri May 30 14:46:55 CST 2025 aarch64 Toybox
console:/ # 


问题
在测试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源码
RK3568的Android12在这里:
packages/apps/Settings/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java

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

@Override
    public 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;


rootroot@rootroot-X99-Turbo:~/Android13.0/packages/apps/Settings/src/com/android/settings$ cd gestures/
rootroot@rootroot-X99-Turbo:~/Android13.0/packages/apps/Settings/src/com/android/settings/gestures$ ll
total 256
drwxrwxr-x  2 rootroot rootroot  4096 12月 10 10:07 ./
drwxrwxr-x 61 rootroot rootroot  4096 12月 10 10:07 ../
-rw-rw-r--  1 rootroot rootroot  1309 12月 10 10:07 AssistGestureFeatureProviderImpl.java
-rw-rw-r--  1 rootroot rootroot  1301 12月 10 10:07 AssistGestureFeatureProvider.java
-rw-rw-r--  1 rootroot rootroot  3515 12月 10 10:07 AssistGestureSettings.java
-rw-rw-r--  1 rootroot rootroot  4844 12月 10 10:07 AssistGestureSettingsPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  5224 12月 10 10:07 BackGestureIndicatorDrawable.java
-rw-rw-r--  1 rootroot rootroot  4000 12月 10 10:07 BackGestureIndicatorView.java
-rw-rw-r--  1 rootroot rootroot  2408 12月 10 10:07 ButtonNavigationSettingsAssistController.java
-rw-rw-r--  1 rootroot rootroot  2467 12月 10 10:07 ButtonNavigationSettingsFragment.java
-rw-rw-r--  1 rootroot rootroot  2716 12月 10 10:07 DoubleTapPowerPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2350 12月 10 10:07 DoubleTapPowerSettings.java
-rw-rw-r--  1 rootroot rootroot  3339 12月 10 10:07 DoubleTapScreenPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2651 12月 10 10:07 DoubleTapScreenSettings.java
-rw-rw-r--  1 rootroot rootroot  2734 12月 10 10:07 DoubleTwistGestureSettings.java
-rw-rw-r--  1 rootroot rootroot  4418 12月 10 10:07 DoubleTwistPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2021 12月 10 10:07 GestureNavigationSettingsAssistController.java
-rw-rw-r--  1 rootroot rootroot  6209 12月 10 10:07 GestureNavigationSettingsFragment.java
-rw-rw-r--  1 rootroot rootroot  2831 12月 10 10:07 GesturePreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2716 12月 10 10:07 GestureSettings.java
-rw-rw-r--  1 rootroot rootroot  3802 12月 10 10:07 GesturesSettingPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2372 12月 10 10:07 GlobalActionsPanelPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  3154 12月 10 10:07 LongPressPowerFooterPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  3355 12月 10 10:07 LongPressPowerForAssistantPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  3360 12月 10 10:07 LongPressPowerForPowerMenuPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2872 12月 10 10:07 LongPressPowerIllustrationPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  5219 12月 10 10:07 LongPressPowerSensitivityPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  3666 12月 10 10:07 OneHandedActionPullDownPrefController.java
-rw-rw-r--  1 rootroot rootroot  3675 12月 10 10:07 OneHandedActionShowNotificationPrefController.java
-rw-rw-r--  1 rootroot rootroot  2655 12月 10 10:07 OneHandedEnablePreferenceController.java
-rw-rw-r--  1 rootroot rootroot  3346 12月 10 10:07 OneHandedMainSwitchPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  1728 12月 10 10:07 OneHandedPreferenceCategoryController.java
-rw-rw-r--  1 rootroot rootroot  5730 12月 10 10:07 OneHandedSettings.java
-rw-rw-r--  1 rootroot rootroot 11811 12月 10 10:07 OneHandedSettingsUtils.java
-rw-rw-r--  1 rootroot rootroot  3301 12月 10 10:07 PickupGesturePreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2531 12月 10 10:07 PickupGestureSettings.java
-rw-rw-r--  1 rootroot rootroot  1539 12月 10 10:07 PowerMenuPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  1488 12月 10 10:07 PowerMenuSettings.java
-rw-rw-r--  1 rootroot rootroot  6982 12月 10 10:07 PowerMenuSettingsUtils.java
-rw-rw-r--  1 rootroot rootroot  7003 12月 10 10:07 PreventRingingGesturePreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2900 12月 10 10:07 PreventRingingGestureSettings.java
-rw-rw-r--  1 rootroot rootroot  7787 12月 10 10:07 PreventRingingParentPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  4337 12月 10 10:07 PreventRingingSwitchPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  3083 12月 10 10:07 SwipeToNotificationPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2506 12月 10 10:07 SwipeToNotificationSettings.java
-rw-rw-r--  1 rootroot rootroot 15894 12月 10 10:07 SystemNavigationGestureSettings.java
-rw-rw-r--  1 rootroot rootroot  3787 12月 10 10:07 SystemNavigationPreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2711 12月 10 10:07 TapScreenGesturePreferenceController.java
-rw-rw-r--  1 rootroot rootroot  2614 12月 10 10:07 TapScreenGestureSettings.java
rootroot@rootroot-X99-Turbo:~/Android13.0/packages/apps/Settings/src/com/android/settings/gestures$ 
rootroot@rootroot-X99-Turbo:~/Android13.0/packages/apps/Settings/src/com/android/settings/gestures$ grep getSummary . -R
./OneHandedEnablePreferenceController.java:    public CharSequence getSummary() {
./AssistGestureSettingsPreferenceController.java:    public CharSequence getSummary() {
./GesturePreferenceController.java:    public CharSequence getSummary() {
./TapScreenGesturePreferenceController.java:    public CharSequence getSummary() {
./TapScreenGesturePreferenceController.java:        return super.getSummary();
./PowerMenuPreferenceController.java:    public CharSequence getSummary() {
./SystemNavigationPreferenceController.java:    public CharSequence getSummary() {
rootroot@rootroot-X99-Turbo:~/Android13.0/packages/apps/Settings/src/com/android/settings/gestures$ grep longPressOnPowerBehavior . -R
./PowerMenuSettingsUtils.java:            com.android.internal.R.integer.config_longPressOnPowerBehavior;

rootroot@rootroot-X99-Turbo:~/Android13.0/packages/apps/Settings/src/com/android/settings/gestures$ Connection closing...Socket close.

RK3568的Android12在这里:
Android13.0/packages/apps/Settings/src/com/android/settings/gestures/PowerMenuSettingsUtils.java


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

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


测试属性设置为1,长按power键,出现如下界面,类似Android11的效果了
属性设置为2,长按power键,出现如下关机确认界面
这两个属性配置基本可以满足需求,问题解决

修改这里:
Z:\Android13.0\frameworks\base\core\res\res\values\config.xml

    <!-- How long to show a warning message to user before the device goes to sleep after prolonged
         user inactivity. -->
    <integer name="config_attentiveWarningDuration">30000</integer>

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

    <!-- The time in milliseconds after which a press on power button is considered "long". -->
    <integer name="config_longPressOnPowerDurationMs">500</integer>

修改为:

    <!-- How long to show a warning message to user before the device goes to sleep after prolonged
         user inactivity. -->
    <integer name="config_attentiveWarningDuration">30000</integer>

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

    <!-- The time in milliseconds after which a press on power button is considered "long". -->
    <integer name="config_longPressOnPowerDurationMs">500</integer>


【编译之后就修改了这里,原因未知!】
    <!-- Whether to only install system packages on a user if they're allowlisted for that user
         type. These are flags and can be freely combined.
         0  - disable allowlist (install all system packages; no logging)
         1  - enforce (only install system packages if they are allowlisted)
         2  - log (log non-allowlisted packages)
         4  - any package not mentioned in the allowlist file is implicitly allowlisted on all users
         8  - same as 4, but just for the SYSTEM user
         16 - ignore OTAs (don't install system packages during OTAs)
         Common scenarios:
          - to enable feature (fully enforced) for a complete allowlist: 1
          - to enable feature for an incomplete allowlist (so use implicit allowlist mode): 5
          - to enable feature but implicitly allowlist for SYSTEM user to ease local development: 9
          - to disable feature completely if it had never been enabled: 16
          - to henceforth disable feature and try to undo its previous effects: 0
        Note: This list must be kept current with PACKAGE_WHITELIST_MODE_PROP in
        frameworks/base/services/core/java/com/android/server/pm/UserSystemPackageInstaller.java -->
    <integer name="config_userTypePackageWhitelistMode">5</integer> <!-- 1+4+8 -->

修改为:

    <integer name="config_userTypePackageWhitelistMode">13</integer> <!-- 1+4+8 -->


参考资料
https://baijiahao.baidu.com/s?id=1717361143132016535&wfr=spider&for=pc
https://segmentfault.com/a/1190000023222360?utm_source=tag-newest


文章转载自:

http://fFNdP790.nwwzc.cn
http://Z4Pis3QA.nwwzc.cn
http://u1W3BHS2.nwwzc.cn
http://j6DVUOrl.nwwzc.cn
http://QUgUMkrR.nwwzc.cn
http://q9lAaUfg.nwwzc.cn
http://psTC5yG9.nwwzc.cn
http://i6uoM2Y6.nwwzc.cn
http://IpenXml2.nwwzc.cn
http://f5QrGjUw.nwwzc.cn
http://H7zVClv5.nwwzc.cn
http://fj5lm6oj.nwwzc.cn
http://KYgnsJi4.nwwzc.cn
http://C6ZDt1uL.nwwzc.cn
http://nhZsNqhV.nwwzc.cn
http://Ds7cRLeS.nwwzc.cn
http://xskQU6XW.nwwzc.cn
http://eZRkyEWc.nwwzc.cn
http://ZDe1zfQG.nwwzc.cn
http://uZ8t6Bjt.nwwzc.cn
http://0QTW7tE9.nwwzc.cn
http://P2H6GdzX.nwwzc.cn
http://ktW1cgNB.nwwzc.cn
http://y579YCNX.nwwzc.cn
http://6bmQwcys.nwwzc.cn
http://CT2WFPZi.nwwzc.cn
http://SfzTscZV.nwwzc.cn
http://UsK3fU9q.nwwzc.cn
http://RpyXORaj.nwwzc.cn
http://eFM605b7.nwwzc.cn
http://www.dtcms.com/wzjs/673860.html

相关文章:

  • 微网站开发平台案例长沙建站公司哪有
  • 爱网站网络小白如何建立个人网站
  • 无锡市建设工程质量监督站网站做网站运营需要有什么能力
  • 网站描述代码怎么写外贸公司应该怎样做外贸网站
  • 国外家装设计网站宁波seo
  • 如何做网站seo韩小培一个空间放2个wordpress
  • 论坛网站前置审批wordpress多个文章页
  • 帮人家做网站怎么赚钱常州手机网站建设
  • 私人制定网站营业执照注销
  • 天河网站建设外包平台开发是做什么的
  • 网站如何添加代码福建省市场监督管理局
  • 邯郸专业做网站报价改变网站的域名
  • 网站维护托管公司手机网页无法打开是什么原因
  • 企业局域网做网站屏蔽可以直接进入网站的正能量照片
  • 建设网站的工作总结wordpress android 源码
  • 马关网站建设微网站建设包括哪些
  • 寿光专业做网站电商发展新方向
  • 做公司网站的模板下载广州冼村街道办
  • 网站没有访问量网站建设必要性和意义
  • 上海网站建设制作企业所得税优惠政策2021年计算
  • 种子网站模板软件开发服务费
  • 酷家乐设计家官网廊坊视频优化展现
  • 创建众筹网站进度跟踪网站开发
  • 如何改wordpress网站图标桂林相关网站
  • 人工智能和网站开发北京综合网络营销
  • 一般建设企业网站的费用wordpress会员查看
  • 解析域名就可以做网站企业网站现状
  • 怎么看网站是谁家做的wordpress换标题
  • 建设通网站怎么注销邢台网红二妹
  • 建设信用卡手机银行官方网站贷款平台代理怎么加入