亮度工具類
import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
import android.preference.PreferenceManager;
import android.provider.Settings;
/**
* @author L
*/
public class BrightnessManager {
/**
* 獲得當(dāng)前屏幕亮度的模式
*
* @return 1 為自動(dòng)調(diào)節(jié)屏幕亮度,0 為手動(dòng)調(diào)節(jié)屏幕亮度,-1 獲取失敗
*/
public static int getScreenMode(Context context) {
int mode = -1;
try {
mode = Settings.System.getInt(context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return mode;
}
/**
* 獲得當(dāng)前屏幕亮度值
*
* @return 0--255
*/
public static int getScreenBrightness(Context context) {
int screenBrightness = -1;
try {
screenBrightness = Settings.System.getInt(context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return screenBrightness;
}
public static int saveBrightnessToSP(Context context) {
int screenBrightness = -1;
try {
screenBrightness = Settings.System.getInt(context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.edit().putInt("system_screen_bright",screenBrightness).apply();
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return screenBrightness;
}
public static void restoreBrightness(Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
int paramInt = sp.getInt("system_screen_bright",90);
if(Build.VERSION.SDK_INT<23){
if (Build.VERSION.SDK_INT>=21){
Settings.System.putInt(context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS, paramInt);
Uri uri = Settings.System.getUriFor("screen_brightness");
context.getContentResolver().notifyChange(uri, null);
}
/* else {
適配4.0
}*/
}
if (Build.VERSION.SDK_INT>=23){
if (Settings.System.canWrite(context)) {
saveBrightness(context.getContentResolver(),paramInt);
}
}
}
/**
* 設(shè)置當(dāng)前屏幕亮度的模式
*
* @param mode 1 為自動(dòng)調(diào)節(jié)屏幕亮度,0 為手動(dòng)調(diào)節(jié)屏幕亮度
*/
public static void setScreenMode(int mode, Context context) {
try {
Settings.System.putInt(context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE, mode);
Uri uri = Settings.System.getUriFor("screen_brightness_mode");
context.getContentResolver().notifyChange(uri, null);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 保存當(dāng)前的屏幕亮度值侈贷,并使之生效
*
* @param paramInt 0-255
*/
public static void setScreenBrightness(int paramInt, Context context) {
if(Build.VERSION.SDK_INT<23){
if (Build.VERSION.SDK_INT>=21){
Settings.System.putInt(context.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS, paramInt);
Uri uri = Settings.System.getUriFor("screen_brightness");
context.getContentResolver().notifyChange(uri, null);
}
/* else {
適配4.0
}*/
}
if (Build.VERSION.SDK_INT>=23){
if (Settings.System.canWrite(context)) {
saveBrightness(context.getContentResolver(),paramInt);
}
}
}
public static void saveBrightness(ContentResolver resolver, int brightness) {
//改變系統(tǒng)的亮度值
//這里需要權(quán)限android.permission.WRITE_SETTINGS
//設(shè)置為手動(dòng)調(diào)節(jié)模式
Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
//保存到系統(tǒng)中
Uri uri = android.provider.Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS);
android.provider.Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
resolver.notifyChange(uri, null);
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者