【问题标题】:Change screen brightness onPause (Android app)在暂停时更改屏幕亮度(Android 应用)
【发布时间】:2012-11-03 19:45:09
【问题描述】:

我的应用通过以下方式保存用户原始亮度:

originalBrightness = Settings.System.SCREEN_BRIGHTNESS;

然后在程序运行时更改它。

originalBrightness 是私有的全局字符串。现在我要做的是当用户点击“主页”或当应用暂停时需要重新设置原始屏幕,我尝试这样做但应用崩溃了:

public void onPause() {
    super.onPause();
    int brightness = Integer.getInteger(originalBrightness);
    setBrightness(brightness);
}
private void setBrightness(int brightness) {
    WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
    layoutParams.screenBrightness = brightness / 100.0f;
    getWindow().setAttributes(layoutParams);
}

对男性有用吗?谢谢

【问题讨论】:

    标签: android android-activity onpause


    【解决方案1】:

    尝试使用Settings.System.SCREEN_BRIGHTNESS将系统默认亮度设置为:

    android.provider.Settings.System.putInt(getContentResolver(),  
    android.provider.Settings.System.SCREEN_BRIGHTNESS,brightness /100.0f); // 0-255 
    

    并在清单中添加这些权限:

    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    

    【讨论】:

    • 你能解释一下什么剂量 android.provider.Settings.System.putInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS,brightness /100.0f); // 0-255
    • @VladIoffe :当前您正在为活动设置亮度而不是设备默认亮度,正如您在问题中提到的when the user clicks on "Home" or when the app paused the original screen is need to be set again 意味着您要恢复设备默认亮度,那么这是从设备自动完成的。如果您有任何问题,那么您将需要修改系统默认设置作为我的答案
    猜你喜欢
    • 2012-12-22
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多