屏幕亮度
分为当前界面亮度和系统亮度两种类型.
亮度模式有自动调节和手动调节两种模式
亮度的范围 0~256
注意权限:android.permission.WRITE_SETTINGS
BUG: 当时应该是还遇到了一个问题,在视频播放页面设置了亮度后,整个手机的亮度都改变了。可惜,时间太久,忘记了发生原因和解决方法了。
获取当前屏幕亮度
long screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
获取当前屏幕模式
long screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
设置当前界面亮度
private void setLight(Activity context, int brightness) {
WindowManager.LayoutParams lp = context.getWindow().getAttributes();
lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
context.getWindow().setAttributes(lp);
}
设置系统亮度
public void saveBrightness(Activity activity, int brightness) {
Uri uri = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS);
Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
activity.getContentResolver().notifyChange(uri, null);
}
媒体音量
这个比较简单,就记录几点遇到的问题。
- 每个机型的最大音量值
getStreamMaxVolume
是不同的。如果有滑动调节音量的需求,要注意。 - 调整音量有两种方式:
adjustStreamVolume
:这种方式调整的程度是不可控,但是调用方便
setStreamVolume
:这种方式可以设置数值进行精确控制,注意设置的值要根据getStreamMaxVolume
获取的最大值确定。另外,音量值都是 int - 调整屏幕亮度和设备音量的时候,都有 Flag 可以设置。可以控制 UI 的显示与否,调整时是否提示音量等等。
网友评论