Device 相关信息

2018-04-19  本文已影响0人  金樽明月

屏幕亮度

参考连接

分为当前界面亮度和系统亮度两种类型.
亮度模式有自动调节和手动调节两种模式
亮度的范围 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);
    }

媒体音量

这个比较简单,就记录几点遇到的问题。

  1. 每个机型的最大音量值 getStreamMaxVolume 是不同的。如果有滑动调节音量的需求,要注意。
  2. 调整音量有两种方式:
    adjustStreamVolume :这种方式调整的程度是不可控,但是调用方便
    setStreamVolume:这种方式可以设置数值进行精确控制,注意设置的值要根据getStreamMaxVolume获取的最大值确定。另外,音量值都是 int
  3. 调整屏幕亮度和设备音量的时候,都有 Flag 可以设置。可以控制 UI 的显示与否,调整时是否提示音量等等。
上一篇下一篇

猜你喜欢

热点阅读