frameworks/base/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessController.java
private final Runnable mUpdateSliderRunnable = new Runnable() {
@Override
public void run() {
final boolean inVrMode = mIsVrModeEnabled;
final BrightnessInfo info = mContext.getDisplay().getBrightnessInfo();
if (info == null) {
return;
}
mBrightnessMax = info.brightnessMaximum;
mBrightnessMin = info.brightnessMinimum;
// Value is passed as intbits, since this is what the message takes.
final int valueAsIntBits = Float.floatToIntBits(info.brightness);
mHandler.obtainMessage(MSG_UPDATE_SLIDER, valueAsIntBits,
inVrMode ? 1 : 0).sendToTarget();
}
};
mBrightnessMin = info.brightnessMinimum; 设置最小亮度的的值是从 BrightnessInfo 里获取的 ,但是 里面的 brightnessMinimum 属性是在哪赋值的我实在找不到了。
在上述代码中,可以看到最小亮度值的获取和设置是在mUpdateSliderRunnable这个Runnable对象的run()方法中完成的。具体来说,在run()方法中,通过调用mContext.getDisplay().getBrightnessInfo()方法获取BrightnessInfo对象。如果获取成功,就可以通过info.brightnessMinimum获取到最小亮度值。然后将该值赋值给mBrightnessMin即可。具体的代码如下:
final BrightnessInfo info = mContext.getDisplay().getBrightnessInfo();
if (info == null) {
return;
}
mBrightnessMin = info.brightnessMinimum;