【Android】设置-显示-屏保-启用时机-去除插入基座相关(不支持该功能的话)

设置-显示-屏保-启用时机-去除插入基座相关(不支持该功能的话)

1-项目场景:

展锐平台


2-问题描述

选择“插入基座”时暂无法触发屏保

步骤:设置-显示-屏保-启用时机-插入基座
选择“插入基座”时暂无法触发屏保
该版本不支持该功能


3-解决方案:

去除基座相关:

  1. 定义宏(/device/common/common.mk)
+ ifeq ($(strip $(AGN_WHEN_TO_START_SCREENSAVER)),yes)
+     PRODUCT_VENDOR_PROPERTIES +=odm.agn.when_to_start_screensaver = true
+ endif
  1. 开宏(/device/sprd/qogirn6pro/…/…/…/BoardConfigAP.mk)
+ AGN_WHEN_TO_START_SCREENSAVER = yes

3.( /packages/apps/Settings)

  • 定义两个字符串数组,这些字符串数组可以用于创建下拉列表,以便用户可以选择在何时启动屏幕保护程序。(res/values/arrays.xml)
+    <string-array name="when_to_start_screenSaver_entries" translatable="false">
+        <item>@string/screensaver_settings_summary_sleep</item>
+        <item>@string/screensaver_settings_summary_never</item>
+    </string-array>

+    <string-array name="when_to_start_screenSaver_values" translatable="false">
+        <item>while_charging_only</item>
+        <item>never</item>
+    </string-array>
  • 根据 WHEN_TO_START_SCREENSAVER 变量的值来选择要返回的字符串数组(也就是上一步定义的字符串数组)(src/com/android/settings/dream/WhenToDreamPicker.java)
 
 package com.android.settings.dream;

+import android.os.SystemProperties;

 public class WhenToDreamPicker extends RadioButtonPickerFragment {
 
    private static final String TAG = "WhenToDreamPicker";
+	private static final boolean WHEN_TO_START_SCREENSAVER = SystemProperties.getBoolean("odm.agn.when_to_start_screensaver", false);

     private String[] entries() {
+		if(WHEN_TO_START_SCREENSAVER){
+			return getResources().getStringArray(R.array.when_to_start_screenSaver_entries);
+		}
         return getResources().getStringArray(R.array.when_to_start_screensaver_entries);
     }
 
     private String[] keys() {
+		if(WHEN_TO_START_SCREENSAVER){
+			return getResources().getStringArray(R.array.when_to_start_screenSaver_values);
+		}
         return getResources().getStringArray(R.array.when_to_start_screensaver_values);
     }

 
  • 首次进入屏保时,启用时机下方小字也去除基座相关内容(src/com/android/settings/dream/DreamSetting.java)
static int getDreamSettingDescriptionResId(@WhenToDream int dreamSetting) {
         switch (dreamSetting) {
             case WHILE_CHARGING:
                 return R.string.screensaver_settings_summary_sleep;
-            case WHILE_DOCKED:
-                return R.string.screensaver_settings_summary_dock;
-            case EITHER:
-                return R.string.screensaver_settings_summary_either_long;
             case NEVER:
             default:
                 return R.string.screensaver_settings_summary_never;
         }


4-代码修改前后效果对比图:

代码修改前:

代码修改前

代码修改后:

代码修改后

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值