本文實例講述了Android開發實現調節屏幕亮度功能。分享給大家供大家參考,具體如下:
在很多app中進入二維碼顯示界面時會自動調整屏幕亮度,那么如何實現調節app的屏幕亮度呢?下面我來為大家介紹:
注:調節屏幕亮度的核心思想就是對安卓系統提供的ContentProvider進行操作
1、聲明權限
需要允許用戶修改系統配置
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
2、具體操作
/**
* 判斷是否開啟了自動亮度調節
*/
public static boolean isAutoBrightness(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean automicBrightness = false;
try {
automicBrightness = Settings.System.getInt(resolver,
Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return automicBrightness;
}
/**
* 獲取屏幕的亮度
*/
public static int getScreenBrightness(Context context) {
int nowBrightnessValue = 0;
ContentResolver resolver = context.getContentResolver();
try {
nowBrightnessValue = android.provider.Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS);
} catch (Exception e) {
e.printStackTrace();
}
return nowBrightnessValue;
}
/**
* 設置當前Activity顯示時的亮度
* 屏幕亮度最大數值一般為255,各款手機有所不同
* screenBrightness 的取值范圍在[0,1]之間
*/
public static void setBrightness(Activity activity, int brightness) {
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
activity.getWindow().setAttributes(lp);
}
/**
* 開啟關閉自動亮度調節
*/
public static boolean autoBrightness(Context activity, boolean flag) {
int value = 0;
if (flag) {
value = Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; //開啟
} else {
value = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;//關閉
}
return Settings.System.putInt(activity.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
value);
}
/**
* 保存亮度設置狀態,退出app也能保持設置狀態
*/
public static void saveBrightness(Context context, int brightness) {
ContentResolver resolver = context.getContentResolver();
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);
}
好了,亮度調節差不多就這樣了。
另外,更多關于Android權限控制的說明可點擊此處查看Android權限操作說明
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android視圖View技巧總結》、《Android編程之activity操作技巧總結》、《Android文件操作技巧匯總》、《Android資源操作技巧匯總》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。