背景灯光控制

1.三版中,背景灯开/关、闪烁可以通过CHWRMLight类控制:

Void LightOnL(Tint aTarget, Tint aDuration, Tint aIntensity, TBool aFadeIn)

aTarget: 目标设备,一般为EPrimaryDisplay

aDruation: 持续时间,为0时表示一直亮,毫秒为单位

aIntensity: 背景灯强度,一般为默认值

aFadeIn: 是否慢慢变化

 

void LightOffL(Tint aTarget, Tint aDuration, TBool aFadeIn)

控制背景灯关闭,参数同上

 

Void LightBlinkL(TInt aTarget, TInt aDuration, TInt aOnDuration, TInt aOffDuration, TInt aIntensity)

控制背景灯闪烁,参数同上

aOnDuration: 开持续时间

aOffDuration: 关持续时间

 

void ReserveLightL(Tint aTarget, TBool aRestoreState, TBool aForceNoCCoeEnv)

aTarget: 目标设备

aRestoreState: 是否保存

aForceNoCCoeEnv: 前后台切换时背景灯设置是否改变

 

该函数用于挂起低优先级的背景灯设置,当调用打开或关闭背景灯之前必须调用该函数,否则操作无效

 

Void ReleaseLight(TInt aTarget)

释放当前背景灯设置,如果没有保存的设置,恢复系统默认设置,退出程序时需要调用

 

3.关于设置背景灯间隔时间,可以开启定时器,通过User::InactivityTime()定时获取用户闲置时间,然后判断该值是否大于用户设置的间隔时间来打开或者关闭背景灯,可以考虑使用已有的定时器

User::ResetInactivityTime()

 

以下代码仅供参考:

    TTimeIntervalSeconds seconds = User::InactivityTime();

    TInt target = CHWRMLight::EPrimaryDisplay;

    if (seconds.Int() > 10)

    {       

        if (CHWRMLight::ELightOn == iLight->LightStatus(target))

        {

            iLight->ReserveLightL(target);

            iLight->LightOffL(target, 0);

        }

    }

    else

    {  

        if (CHWRMLight::ELightOff == iLight->LightStatus(target))

        {

            iLight->ReserveLightL(target);

            iLight->LightOnL(target, 0);

        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值