Service中调节屏幕亮度(不依赖Activity)的实现

本文介绍了如何在Android Service中实现屏幕亮度调节,特别是在应用退出后仍能运行的桌面小工具。通过检查并控制自动亮度设置,以及解决在低版本Android设备上需要刷新才能生效的问题。尝试了使用Activity的getWindow方法,但由于Service的限制无法直接调用。最后,通过创建一个全屏透明View,利用WindowManager的LayoutParams设置screenBrightness属性来实现亮度调节,并在完成操作后移除该View,从而达到在Service中调节屏幕亮度的目的。
摘要由CSDN通过智能技术生成

      项目中需要做一个桌面小工具,会悬浮在桌面(类似360等的清理内存悬浮框),点击后又手电筒、wifi、屏幕亮度等开关,因为需要在app退出后也能够运行,所以需要由Service实现。

其中的设置屏幕亮度的方法如下:

Settings.System.putInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);


如果当开启自动调节功能的时候,我们进行调节好像是没有一点作用的,只有进行判断,看是否开启了屏幕亮度的自动调节功能。

    /**
     *
     * @return 1:表示是自动亮度
     */

    private int getScreenMode(){
        int screenMode=0;
        try{
            screenMode = Settings.System.getInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
        }
        catch (Exception localException){
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值