android 设置亮度相关方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | package com.example.lightsensortest; import android.content.ContentResolver; import android.content.Context; import android.provider.Settings; import android.view.Window; import android.view.WindowManager; import androidx.appcompat.app.AppCompatActivity; //需要权限 <uses-permission android:name="android.permission.WRITE_SETTINGS"/> public class BrightnessA { //屏幕亮度最亮255,最暗0 //获取系统亮度值 public static int getScreenBrightness(Context context){ // setBrightnessManualMode(context); ContentResolver contentResolver=context.getContentResolver(); int defaultValue=- 1 ; return Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, defaultValue); } //获取当前app 当前屏幕亮度值 public static float getCurrentAppBrightness(Context context) { Window window = ((AppCompatActivity)context).getWindow(); WindowManager.LayoutParams lp=window.getAttributes(); return window.getAttributes().screenBrightness * 255 ; } //设置屏幕亮度 //注:屏幕亮度最亮255,最暗0 public static void setScreenBrightness( int brightness,Context context) { if (brightness< 0 ||brightness> 255 ){ throw new SecurityException( "=======亮度值需设置在 0-255 之间的int值=======" ); } //设置为手动模式 setBrightnessManualMode(context); //设置屏幕亮度 Window window = ((AppCompatActivity)context).getWindow(); WindowManager.LayoutParams lp=window.getAttributes(); lp.screenBrightness = brightness / 255 .0f; window.setAttributes(lp); } /**设置屏幕最亮**/ public static void setMaxBrightness(Context context){ //设置为手动模式 setBrightnessManualMode(context); //设置屏幕亮度 setScreenBrightness( 255 ,context); } /**设置屏幕最暗**/ public static void setMinBrightness(Context context){ //设置为手动模式 setBrightnessManualMode(context); //设置屏幕亮度 setScreenBrightness( 0 ,context); } //设置屏幕常亮 //需要在界面调用 "setContentView(R.layout.布局id);" 之前调用。 public static void setScreenKeepOn(Context context){ ((AppCompatActivity)context).getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } //清除屏幕常亮 //常在activity的onPause()周期内调用(仅供参考) public static void cancelScreenKeepOn(Context context){ ((AppCompatActivity)context).getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } //设置亮度调节模式为手动模式 //SCREEN_BRIGHTNESS_MODE_AUTOMATIC:自动调节模式 //SCREEN_BRIGHTNESS_MODE_MANUAL:手动调节模式 private static void setBrightnessManualMode(Context context){ ContentResolver contentResolver=context.getContentResolver(); int model= 0 ; try { model = Settings.System.getInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS_MODE); } catch (Settings.SettingNotFoundException e) { e.printStackTrace(); } if (model==Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC){ Settings.System.putInt( contentResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } } } |
分类:
android相关
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!