Android设置app屏幕亮度和系统屏幕亮度
Android设置app屏幕亮度和系统屏幕亮度。
·
BrightnessTools:
package com.example.test
import android.app.Activity
import android.content.ContentResolver
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.provider.Settings
import android.provider.Settings.SettingNotFoundException
import android.util.Log
object BrightnessTools {
/**
* * 判断是否开启了自动亮度调节
* @param aContentResolver 内容解析器
* @return automaticBrightness 是否开启了自动亮度调节
*/
fun isAutoBrightness(aContentResolver: ContentResolver?): Boolean {
var automaticBrightness = false
try {
automaticBrightness = Settings.System.getInt(
aContentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE
) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
} catch (e: SettingNotFoundException) {
e.printStackTrace()
}
return automaticBrightness
}
/**
* 获取屏幕的亮度
* @param activity 活动
* @return nowBrightnessValue 屏幕的亮度
*/
fun getScreenBrightness(activity: Activity): Int {
var nowBrightnessValue = 0
val resolver = activity.contentResolver
try {
nowBrightnessValue = Settings.System.getInt(
resolver, Settings.System.SCREEN_BRIGHTNESS
)
} catch (e: Exception) {
e.printStackTrace()
}
return nowBrightnessValue
}
/**
* app内设置亮度
* @param activity 活动
* @param brightness 亮度:0-255
*/
fun setBrightness(activity: Activity, brightness: Int) {
val lp = activity.window.attributes
lp.screenBrightness = java.lang.Float.valueOf(brightness.toFloat()) * (1f / 255f)
Log.d("brightness", "set lp.screenBrightness == " + lp.screenBrightness)
activity.window.attributes = lp
}
/**
* 停止自动亮度调节
* @param activity 活动
*/
fun stopAutoBrightness(activity: Activity) {
// 模拟器测可以用 但用真机测会闪退(小米9 Android 10)
// Error: Caused by: java.lang.SecurityException: com.szats.moto was not granted this permission: android.permission.WRITE_SETTINGS.
Settings.System.putInt(
activity.contentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
)
}
/**
* 开启亮度自动调节
* @param activity 活动
*/
fun startAutoBrightness(activity: Activity) {
// 模拟器测可以用 但用真机测会闪退(小米9 Android 10)
// Error: Caused by: java.lang.SecurityException: com.szats.moto was not granted this permission: android.permission.WRITE_SETTINGS.
Settings.System.putInt(
activity.contentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
)
}
/**
* 设置系统亮度
* @param resolver
* @param brightness 亮度:0-255
*/
fun setSystemBrightness(resolver: ContentResolver, brightness: Int) {
// 模拟器测可以用 但用真机测会闪退(小米9 Android 10)
// Error: Caused by: java.lang.SecurityException: com.szats.moto was not granted this permission: android.permission.WRITE_SETTINGS.
val uri = Settings.System.getUriFor("screen_brightness")
Log.d("brightness", "------设置系统亮度结果:${Settings.System.putInt(resolver, "screen_brightness", brightness)}")
// resolver.registerContentObserver(uri, true, myContentObserver);
resolver.notifyChange(uri, null)
}
}
使用:
private fun setBrightness() {
// // 判断是否开启自动亮度
// val autoBrightness = BrightnessTools.isAutoBrightness(contentResolver)
BrightnessTools.setBrightness(this, 255)
Log.d("brightness", "当前页面亮度设置为:255")
}
private fun setSystemBrightness() {
val screenBrightness = BrightnessTools.getScreenBrightness(this)
Log.d("brightness", "系统屏幕亮度为:${screenBrightness}")
BrightnessTools.setSystemBrightness(contentResolver,255)
Log.d("brightness", "系统屏幕亮度设置为:255")
}
更多推荐
已为社区贡献3条内容
所有评论(0)