甘肃网站域名申请公司,软文推广是什么意思,建设项目立项网站,南昌建站推广公司1、安卓每个版本的更新#xff0c; 其核心代码也会随之更新#xff0c;本次为Android 12 版本默认屏幕亮度的修改。
其中涉及的核心代码主要有#xff1a;
packages\apps\Settings\src\com\android\settings\display\BrightnessLevelPreferenceController.java
frameworks…1、安卓每个版本的更新 其核心代码也会随之更新本次为Android 12 版本默认屏幕亮度的修改。
其中涉及的核心代码主要有
packages\apps\Settings\src\com\android\settings\display\BrightnessLevelPreferenceController.java
frameworks\base\services\core\java\com\android\server\power\PowerManagerService.java
frameworks/base/res/res/values/config.xml2、设置默认亮度的主要方法代码
在BrightnessLevelPreferenceController中处理 public class BrightnessLevelPreferenceController extends AbstractPreferenceController implementsPreferenceControllerMixin, LifecycleObserver, OnStart, OnStop {private ContentObserver mBrightnessObserver new ContentObserver(new Handler(Looper.getMainLooper())) {Overridepublic void onChange(boolean selfChange) {updatedSummary(mPreference);}};public BrightnessLevelPreferenceController(Context context, Lifecycle lifecycle) {super(context);if (lifecycle ! null) {lifecycle.addObserver(this);}PowerManager powerManager (PowerManager) context.getSystemService(Context.POWER_SERVICE);mMinBrightness powerManager.getBrightnessConstraint(PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM);mMaxBrightness powerManager.getBrightnessConstraint(PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM);mMinVrBrightness powerManager.getBrightnessConstraint(PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR);mMaxVrBrightness powerManager.getBrightnessConstraint(PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR);mContentResolver mContext.getContentResolver();mDefaultBacklight powerManager.getBrightnessConstraint(PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT);}在PowerManager得到相应的值 private void updatedSummary(Preference preference) {if (preference ! null) {preference.setSummary(NumberFormat.getPercentInstance().format(getCurrentBrightness()));}}private double getCurrentBrightness() {final int value;if (isInVrMode()) {value convertLinearToGammaFloat(System.getFloat(mContentResolver,System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, mMaxBrightness),mMinVrBrightness, mMaxVrBrightness);} else {value convertLinearToGammaFloat(Settings.System.getFloat(mContentResolver,System.SCREEN_BRIGHTNESS_FLOAT, mDefaultBacklight),mMinBrightness, mMaxBrightness);}return getPercentage(value, GAMMA_SPACE_MIN, GAMMA_SPACE_MAX);}private double getPercentage(double value, int min, int max) {if (value max) {return 1.0;}if (value min) {return 0.0;}return (value - min) / (max - min);}…
public final class PowerManagerService extends SystemServiceimplements Watchdog.Monitor {VisibleForTestingPowerManagerService(Context context, Injector injector) {super(context);mContext context;......// Save brightness values:// Get float values from config.// Store float if valid// Otherwise, get int values and convert to float and then store.final float min mContext.getResources().getFloat(com.android.internal.R.dimen.config_screenBrightnessSettingMinimumFloat);final float max mContext.getResources().getFloat(com.android.internal.R.dimen.config_screenBrightnessSettingMaximumFloat);final float def mContext.getResources().getFloat(com.android.internal.R.dimen.config_screenBrightnessSettingDefaultFloat);final float doze mContext.getResources().getFloat(com.android.internal.R.dimen.config_screenBrightnessDozeFloat);final float dim mContext.getResources().getFloat(com.android.internal.R.dimen.config_screenBrightnessDimFloat);if (min INVALID_BRIGHTNESS_IN_CONFIG || max INVALID_BRIGHTNESS_IN_CONFIG|| def INVALID_BRIGHTNESS_IN_CONFIG) {mScreenBrightnessMinimum BrightnessSynchronizer.brightnessIntToFloat(mContext.getResources().getInteger(com.android.internal.R.integer.config_screenBrightnessSettingMinimum),PowerManager.BRIGHTNESS_OFF 1, PowerManager.BRIGHTNESS_ON,PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX);mScreenBrightnessMaximum BrightnessSynchronizer.brightnessIntToFloat(mContext.getResources().getInteger(com.android.internal.R.integer.config_screenBrightnessSettingMaximum),PowerManager.BRIGHTNESS_OFF 1, PowerManager.BRIGHTNESS_ON,PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX);mScreenBrightnessDefault BrightnessSynchronizer.brightnessIntToFloat(mContext.getResources().getInteger(com.android.internal.R.integer.config_screenBrightnessSettingDefault),PowerManager.BRIGHTNESS_OFF 1, PowerManager.BRIGHTNESS_ON,PowerManager.BRIGHTNESS_MIN, PowerManager.BRIGHTNESS_MAX);} else {mScreenBrightnessMinimum min;mScreenBrightnessMaximum max;mScreenBrightnessDefault def;}..}其中它是通过config中实现的 public float getBrightnessConstraint(int constraint) {switch (constraint) {case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM:return mScreenBrightnessMinimum;case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM:return mScreenBrightnessMaximum;case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT:return mScreenBrightnessDefault;case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DIM:return mScreenBrightnessDim;case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DOZE:return mScreenBrightnessDoze;case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR:return mScreenBrightnessMinimumVr;case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR:return mScreenBrightnessMaximumVr;case PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_DEFAULT_VR:return mScreenBrightnessDefaultVr;default:return PowerManager.BRIGHTNESS_INVALID_FLOAT;}}3、修改代码的位置 --- a/frameworks/base/res/res/values/config.xml b//frameworks/base/res/res/values/config.xml -28,5 28,5 item nameconfig_screenBrightnessSettingMaximumFloat formatfloat typedimen1.0/item!-- Default screen brightness setting set.Set this to 0.4 for Default brightness Float.--- item nameconfig_screenBrightnessSettingDefaultFloat formatfloat typedimen0.3/item item nameconfig_screenBrightnessSettingDefaultFloat formatfloat typedimen0.4/item/resources