android手动亮度调节,背光闪烁,自动背光调节

AAL与CABC背光选择(两种方式控制背光):参考[FAQ05966]89平台支持BB端CABC(即AAL)或LCM端CABC方式控制背光,两种方式使用方法如下【BB端CABC(即AAL)】- 打开功能,向MTK申请patch,并在ProjectConfig.mk中打开MTK_AAL_SUPPORT = yes【LCM端CABC】- 对于Video Mode,ALPS.JB2.MP.V1.3(包括1.3)之前的版本,请向MTK申请patch- lcm driver中实现set_backlight接口- cust_leds.c(包括lk与kernel中的两支文件)设置如下

config_automatic_brightness_available  自动亮度调节控制开关

BRIGHTENING_LIGHT_HYSTERESIS ---变得更亮,只有达到比上个lux值高出这个百分比才认为是valid

DARKENING_LIGHT_HYSTERESIS ---变得更暗,只有比上个lux值低出这个百分比才认为是valid

truebool> 亮屏时是否重舍弃上次灭屏时的采集值。true 表示舍弃,这个时候采集

config_lightSensorWarmupTime 这个时间后

马上计算出当前环境值,波动性较大

false 表示重新根据BRIGHTENING_LIGHT_HYSTERESIS、DARKENING_LIGHT_HYSTERESIS计算满足阈值条件值,这样较平滑,需要花些时间才能调节到当前环境值。

0integer>

10000integer> 采样周期

250integer> light-sensor 采样率

4000

变亮持续时间

8000

变暗持续时间

private final SensorEventListener mLightSensorListener = new SensorEventListener() {

// Mediatek AAL support

private long mPrevLogTime = 0L;

private float mPrevLogLux = 0.0f;

@Override

public void onSensorChanged(SensorEvent event) {

if (DEBUG) Slog.d(TAG, "onSensorChanged: mLightSensorEnabled=" + mLightSensorEnabled +

", mAmbientLuxValid=" + mAmbientLuxValid);

if (mLightSensorEnabled) {

final long time = SystemClock.uptimeMillis();

final float lux = event.values[0];

handleLightSensorEvent(time, lux);

// Mediatek AAL support : long period and significant lux changed

if (time - mPrevLogTime >= 500L ||

mPrevLogLux * 1.2f <= lux || lux * 1.2f <= mPrevLogLux) {

if (DEBUG) Slog.d(TAG, "onSensorChanged: lux = " + lux);

mPrevLogTime = time;

mPrevLogLux = lux;

}

}

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

// Not used.

}

};

//light sensor 监听器

private boolean setLightSensorEnabled(boolean enable) {

if (enable != mLightSensorEnabled) {

Slog.d(TAG, "setLightSensorEnabled: enable=" + enable +

", mLightSensorEnabled=" + mLightSensorEnabled +

", mAmbientLuxValid=" + mAmbientLuxValid +

", mResetAmbientLuxAfterWarmUpConfig=" + mResetAmbientLuxAfterWarmUpConfig);

}

if (enable) {

if (!mLightSensorEnabled) {

mLightSensorEnabled = true;

mLightSensorEnableTime = SystemClock.uptimeMillis();

mSensorManager.registerListener(mLightSensorListener, mLightSensor,

mLightSensorRate * 1000, mHandler);

return true;

}

} else {

if (mLightSensorEnabled) {

mLightSensorEnabled = false;

mAmbientLuxValid = !mResetAmbientLuxAfterWarmUpConfig;

mRecentLightSamples = 0;

mAmbientLightRingBuffer.clear();

mInitialHorizonAmbientLightRingBuffer.clear();

mHandler.removeMessages(MSG_UPDATE_AMBIENT_LUX);

mSensorManager.unregisterListener(mLightSensorListener);

}

}

return false;

}

//注册light  sensor,其中采样率 为

<

integer

name=

"config_autoBrightnessLightSensorRate"

>250

integer

>

//light sensor 监听到背光事件处理

final longtime = SystemClock.uptimeMillis();

final floatlux = event.values[0];

handleLightSenso

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值