Android開發(fā)實現(xiàn)調節(jié)屏幕亮度功能
本文實例講述了Android開發(fā)實現(xiàn)調節(jié)屏幕亮度功能。分享給大家供大家參考,具體如下:
在很多app中進入二維碼顯示界面時會自動調整屏幕亮度,那么如何實現(xiàn)調節(jié)app的屏幕亮度呢?下面我來為大家介紹:
注:調節(jié)屏幕亮度的核心思想就是對安卓系統(tǒng)提供的ContentProvider
進行操作
1、聲明權限
需要允許用戶修改系統(tǒng)配置
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
2、具體操作
/** * 判斷是否開啟了自動亮度調節(jié) */ 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顯示時的亮度 * 屏幕亮度最大數(shù)值一般為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); } /** * 開啟關閉自動亮度調節(jié) */ 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); } /** * 保存亮度設置狀態(tài),退出app也能保持設置狀態(tài) */ 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); }
好了,亮度調節(jié)差不多就這樣了。
另外,更多關于Android權限控制的說明可點擊此處查看Android權限操作說明
更多關于Android相關內容感興趣的讀者可查看本站專題:《Android開發(fā)入門與進階教程》、《Android視圖View技巧總結》、《Android編程之activity操作技巧總結》、《Android文件操作技巧匯總》、《Android資源操作技巧匯總》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
相關文章
android RecycleView實現(xiàn)多級樹形列表
這篇文章主要為大家詳細介紹了android RecycleView實現(xiàn)多級樹形列表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-05-05Flutter?Widget?之FocusableActionDetector使用詳解
這篇文章主要為大家介紹了Flutter?Widget?之FocusableActionDetector使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11Android實現(xiàn)短信驗證碼獲取自動填寫功能(詳細版)
這篇文章主要為大家詳細介紹了Android實現(xiàn)短信驗證碼獲取自動填寫功能,很實用的功能分享給大家,感興趣的小伙伴們可以參考一下2016-08-08Android BottomNavigationView與Fragment重建與重疊問題解決方法探索
這篇文章主要介紹了Android BottomNavigationView與Fragment重建與重疊問題解決,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路2023-01-01