系统环境:
Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83
接口代码所在位置为:
/frameworks/base/core/java/android/os/DisplayOutputManager.java
如图:
image.png
1. 设置背光亮度
public void setBrightness(int display, int brightness)
设置亮度,需调用 saveConfig()接口保存到分区里面;
display:屏幕 ID;
brightness:亮度;
取值范围 :[-128,127]
536 /*
537 * brightness: [-128, 127], default 0
538 */
539 /**
540 *
541 * @param display
542 * @param brightness
543 * @return
544 * @hide
545 */
546 public int setBrightness(int display, int brightness)
547 {
548 if (brightness < -32 || brightness > 31) {
549 Log.e(TAG, "setBrightness out of range " + brightness);
550 return -1;
551 }
552 try {
553 mService.setBrightness(display, brightness);
554 } catch (Exception e) {
555 Log.e(TAG, "Error set brightness :" + e);
556 return -1;
557 }
558 return 0;
559 }
560
2. 设置对比度
public void setContrast(int display, int contrast)
设置亮度,需调用 saveConfig()接口保存到分区里面;
display:屏幕 ID;
contrast:对比度;
取值范围:[0, 1.992]
default: 1
561 /*
562 * contrast: [0, 1.992], default 1;
563 */
564 /**
565 *
566 * @param display
567 * @param contrast
568 * @return
569 * @hide
570 */
571 public int setContrast(int display, float contrast)
572 {
573 if (contrast < 0 || contrast > 1.992) {
574 Log.e(TAG, "setContrast out of range " + contrast);
575 return -1;
576 }
577 try {
578 mService.setContrast(display, contrast);
579 } catch (Exception e) {
580 Log.e(TAG, "Error set Contrast :" + e);
581 return -1;
582 }
583 return 0;
584 }
3. 设置色调
public void setHue(int display, int hue)
设置色调,需调用 saveConfig()接口保存到分区里面;
display:屏幕 ID;
hue:色调;
范围:[-30,30]
default: 0
611 /*
612 * degree: [-30, 30], default 0
613 */
614 /**
615 *
616 * @param display
617 * @param degree
618 * @return
619 * @hide
620 */
621 public int setHue(int display, float degree)
622 {
623 if (degree < -30 || degree > 30) {
624 Log.e(TAG, "Error set hue out of range " + degree);
625 return -1;
626 }
627 try {
628 mService.setHue(display, degree);
629 } catch (Exception e) {
630 Log.e(TAG, "Error set hue :" + e);
631 return -1;
632 }
633 return 0;
634 }
635
636 }
4. 设置饱和度
public void setSaturation(int display, int saturation)
设置饱和度,需调用 saveConfig()接口保存到分区里面;
display:屏幕 ID;
saturation:饱和度;
范围:[0, 1.992],
default: 1
561 /*
562 * contrast: [0, 1.992], default 1;
563 */
564 /**
565 *
566 * @param display
567 * @param contrast
568 * @return
569 * @hide
570 */
571 public int setContrast(int display, float contrast)
572 {
573 if (contrast < 0 || contrast > 1.992) {
574 Log.e(TAG, "setContrast out of range " + contrast);
575 return -1;
576 }
577 try {
578 mService.setContrast(display, contrast);
579 } catch (Exception e) {
580 Log.e(TAG, "Error set Contrast :" + e);
581 return -1;
582 }
583 return 0;
584 }
585
5. 保存设置
public int saveConfig()
保存显示参数,配合 setBrightness,setContrast,setSaturation,setHue 使用,
调用这个接口后,相关的数据被写到了 baseparameter 分区。
/**
522 *
523 * @return
524 * @hide
525 */
526 public int saveConfig()
527 {
528 try {
529 return mService.saveConfig();
530 } catch (Exception e) {
531 Log.e(TAG, "Error save :" + e);
532 return -1;
533 }
534 }