安卓怎么通过修改系统文件,使屏幕亮度值的最低亮度更低?

安卓怎么通过修改系统文件,使屏幕亮度值的最低亮度更低?,第1张

一、所需工具

1、APKTOOLS反编译工具;

2、配置JAVA环境;

3、Notepad++;

4、提取系统framework-res.apk文件

二、具体 *** 作

1、因为framework-res.apk是系统文件,我们需要首先加载系统环境,将framework-res.apk放入APKTOOLS文件夹下进行加载。如图:

2、我们反编译framework-res.apk文件。

3、反编译完成以后按路径打开 framework-res\res\values\ 文件夹下的 integers.xml 文件,打开后如图:

4、找到:

<integer name="config_screenBrightnessSettingMinimum">20</integer>最低亮度

<integer name="config_screenBrightnessSettingMaximum">255</integer>最高亮度

<integer name="config_screenBrightnessSettingDefault">130</integer>开机默认亮度

<integer name="config_screenBrightnessDim">20</integer>变换值

5、我们修改好以后回编译、签名、替换即可。

拓展资料:

反编译framework-res.apk

打开\framework-res\res\values\integers.xml

然后找到

<integer name="config_screenBrightnessSettingMinimum">

10</integer>最低亮度

<integer name="config_screenBrightnessSettingMaximum">

255</integer>最高亮度

<integer name="config_screenBrightnessSettingDefault">

102</integer>开机默认亮度

<integer name="config_screenBrightnessDim">10</integer>变暗值

手动修改最低亮度值即可,一般改为1。(0以下未尝试过)。

/**

* 获得当前屏幕亮度的模式

* SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度

* SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度

*/

private int getScreenMode(){

int screenMode=0

try{

screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE)

}

catch (Exception localException){

}

return screenMode

}

/**

* 获得当前屏幕亮度值 0--255

*/

private int getScreenBrightness(){

int screenBrightness=255

try{

screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS)

}

catch (Exception localException){

}

return screenBrightness

}

/**

* 设置当前屏幕亮度的模式

* SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度

* SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度

*/

private void setScreenMode(int paramInt){

try{

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, paramInt)

}catch (Exception localException){

localException.printStackTrace()

}

}

/**

* 设置当前屏幕亮度值 0--255

*/

private void saveScreenBrightness(int paramInt){

try{

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, paramInt)

}

catch (Exception localException){

localException.printStackTrace()

}

}

/**

* 保存当前的屏幕亮度值,并使之生效

*/

private void setScreenBrightness(int paramInt){

Window localWindow = getWindow()

WindowManager.LayoutParams localLayoutParams = localWindow.getAttributes()

float f = paramInt / 255.0F

localLayoutParams.screenBrightness = f

localWindow.setAttributes(localLayoutParams)

}

我在我的应用程序中使用android camera2拍摄连续图像,这时我使用camera2获得的图像预览亮度与原始相机相比非常暗.我看到了这个,但答案中没有类似的要求.

我试图设置camera2亮度的建议在这里:

请注意,此控件仅在android.control.aeMode!= OFF时有效.即使android.control.aeLock == true,此控件也会生效.

captureRequestBuilder = cameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW)

captureRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON)

captureRequestBuilder.set(CaptureRequest.CONTROL_AE_LOCK, true)

captureRequestBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, 6)

但它仍然显示预览为暗图像,如下所示.

看到这里的区别:

原装相机:

使用Camera2:

我需要传递的值是什么,作为第二个参数:

captureRequestBuilder.set(CaptureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, 6)

我保持6,因为正如doc的建议:

例如,如果曝光值(EV)步长为0.333,则"6"表示+2 EV的曝光补偿-3意味着-1 EV的曝光补偿.

但亮度仍然没有影响..


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/10898629.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-12
下一篇2023-05-12

发表评论

登录后才能评论

评论列表(0条)

    保存