admin 管理员组文章数量: 1184232
一、获取系统Settings 中的亮度
二、修改APP界面屏幕亮度,不会影响其他APP
三、修改系统Settings 中屏幕亮度,影响所有APP
四、完整代码实现
一、获取系统Settings 中的亮度
系统屏幕亮度值在(0~255)之间,获取方法很简单,只需要调用以下方法即可。
/**
* 1.获取系统默认屏幕亮度值 屏幕亮度值范围(0-255)
* **/privateintgetScreenBrightness(Context context){
ContentResolver contentResolver = context.getContentResolver();int defVal =125;returnSettings.System.getInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS, defVal);}
修改屏幕亮度包含两种:
1.修改APP界面屏幕亮度,不会影响其他APP。
2.修改系统 Settings 中屏幕亮度,影响所有APP.
二,修改APP界面屏幕亮度,不会影响其他APP
修改自身 APP 亮度很简单,只需要在Activity OnCreate 方法调用如下代码即可。
/**
* 2.设置 APP界面屏幕亮度值方法
* **/privatevoidsetAppScreenBrightness(int birghtessValue){
Window window =getWindow();WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = birghtessValue /255.0f;
window.setAttributes(lp);}三、修改系统Settings 中屏幕亮度,影响所有APP
修改系统 Settings 中的屏幕亮度,由于会影响到所有APP,需要申请修改Settings 的权限<uses-permission * android:name=“android.permission.WRITE_SETTINGS”/>,同时需要取消光感自动调节屏幕亮度的功能,设置为手动调节模式,否则光感传感器会随着光照强度的变化修改系统屏幕亮度,并且非系统签名的APP,需要用户手动授权后才可以修改背光亮度。
关闭光感,设置手动调节背光模式实现方法如下:
/**
* 3.关闭光感,设置手动调节背光模式
*
* SCREEN_BRIGHTNESS_MODE_AUTOMATIC 自动调节屏幕亮度模式值为1
*
* SCREEN_BRIGHTNESS_MODE_MANUAL 手动调节屏幕亮度模式值为0
* **/publicvoidsetScreenManualMode(Context context){
ContentResolver contentResolver = context.getContentResolver();try{
int mode =Settings.System.getInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS_MODE);if(mode ==Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC){
Settings.System.putInt(contentResolver,Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);}}catch(Settings.SettingNotFoundException e){
e.printStackTrace();}}
非系统签名应用,引导用户手动授权修改Settings 权限
非系统签名应用,无法直接修改Settings,需要引导用户手动授权。
/**
* 4.非系统签名应用,引导用户手动授权修改Settings 权限
* **/privatestaticfinalint REQUEST_CODE_WRITE_SETTINGS =1000;privatevoidallowModifySettings(){
// Settings.System.canWrite(MainActivity.this)// 检测是否拥有写入系统 Settings 的权限if(!Settings.System.canWrite(MainActivity.this)){
AlertDialog.Builder builder =newAlertDialog.Builder(this,android.R.style.Theme_Material_Light_Dialog_Alert);
builder.setTitle("请开启修改屏幕亮度权限"版权声明:本文标题:告别摸索,Android屏幕亮度调节全攻略 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1773234150a3559702.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论