ITPub博客

首页 > 移动开发 > ANDROID > Android修改系统亮度的方案

Android修改系统亮度的方案

原创 ANDROID 作者:山有木xi 时间:2020-12-20 16:52:53 0 删除 编辑

在Android应用中有很多情况下,都需要去设置屏幕的亮度,比如说小说APP就需要设置亮度,因为夜晚小看小说高亮度情况下会比较刺眼

在修改前,我们需要获得屏幕亮度

private int getsystemlight(Context context) {
ContentResolver contentResolver = context.getContentResolver();
return Settings.System.getInt(contentResolver,
Settings.System.SCREEN_BRIGHTNESS, 255);//系统亮度为0~255
}
  • 第一种方式:修改APP界面屏幕亮度,不会影响其他APP

先初始化window,用window.getAttributes()初始化WindowManager.LayoutParams,然后调用screenBrightness来设置APP屏幕内的亮度,但是仅限于APP内

private void setApplight(int lightvalue) {
Window window = getWindow();
WindowManager.LayoutParams layoutparams = window.getAttributes();
layoutparams.screenBrightness = lightvalue/ 255.0f;
window.setAttributes(layoutparams );
}
  • 第二种方式:修改系统Settings 中屏幕亮度,影响所有APP

先申请修改Settings的权限<uses-permission * android:name="android.permission.WRITE_SETTINGS"/>

然后要用户允许App使用相关操作,用startActivityForResult申请Settings.ACTION_MANAGE_WRITE_SETTINGS,然后在onActivityResult中判断用户是否允许,允许则执行相关操作

ContentResolver contentResolver = context.getContentResolver();
        Settings.System.putInt(contentResolver,
                                    Settings.System.SCREEN_BRIGHTNESS, birghtessValue);

在实际应用中,第一种方案适用于小说类APP,因为只需要对自己应用内负责,第二种方案适用于全局APP,即对于全局的亮度有需求的APP

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69917874/viewspace-2743787/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle OCA(Java),IBM高级工程师认证,中国软件行业人才(高级c语言),高级Android工程师,对数据库并发与性能调优也有一定了解

注册时间:2019-04-25

  • 博文量
    147
  • 访问量
    390778