项目场景:
作为毕业生第一次参加项目,做的是设置模块的部分功能,这里把本次项目的系统音量和系统亮度的调节的代码做一下保存,方便以后查看
解决方案:
最早写的亮度的工具类SystemBrightnessManager
package com.sprocomm.tablelamp.ui.setting.util;
import android.Manifest;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.provider.Settings;
import android.view.WindowManager;
import androidx.core.app.ActivityCompat;
import static android.webkit.WebViewZygote.getPackageName;
import static com.blankj.utilcode.util.ActivityUtils.startActivity;
/**
* created by XuMaoxin
* 2021.07.31
*/
public class SystemBrightnessManager {
/**
* Determine whether automatic brightness adjustment is turned on
* @param context
* @return
*/
public static boolean isAutoBrightness(Context context) {
boolean autoBrightness = false;
ContentResolver contentResolver = context.getContentResolver();
try {
autoBrightness = Settings.System.getInt(contentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return autoBrightness;
}
/**
* To get system brightness now
* @param context
* @return
*/
public static int getBrightness(Context context) {
int brightValue = 0;
ContentResolver contentResolver = context.getContentResolver();
try {
brightValue = Settings.System.getInt(contentResolver,
Settings.System.SCREEN_BRIGHTNESS);
} catch (Settings.SettingNotFoundException e){
e.printStackTrace();
}
return brightValue;
}
/**
* To set window&system brightness
* @param context
* @param brightValue
*/
public static void setBrightness(Context context, int brightValue) {
WindowManager.LayoutParams layoutParams = ((Activity)context).getWindow().getAttributes();
layoutParams.screenBrightness = (brightValue <= 0? -1.0f : brightValue / 255f);
((Activity)context).getWindow().setAttributes(layoutParams);
saveBrightness(context, brightValue);
}
/**
* To start auto_brightness mode
* @param context
*/
public static void startAutoBrightness(Context context) {
Settings.System.putInt(context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
Uri uri = android.provider.Settings.System.getUriFor("screen_brightness");
context.