java - 安卓SDK : How do you set the screen brightness

标签 java android

我环顾四周,只能找到可以设置该 Activity 亮度的代码。我正在尝试更改实际的电话设置。我试过的代码是:

public class AutoPowerManagerActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        try {
            adjustBright();
        } catch (SettingNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    private void adjustBright() throws SettingNotFoundException {
        // TODO Auto-generated method stub
        int brightnessMode = Settings.System.getInt(getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE);
        if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
            Settings.System.putInt(getContentResolver(),
                    Settings.System.SCREEN_BRIGHTNESS_MODE,
                    Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        }

        WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
        layoutParams.screenBrightness = 0.5F;
        getWindow().setAttributes(layoutParams);
    }
}

最佳答案

您可以使用以下代码将亮度设置回自动,这对我有用。

layoutParams.screenBrightness=-1;
getWindow().setAttributes(layoutParams);

完整代码如下:

public class MainActivity extends Activity {

WindowManager.LayoutParams layoutParams;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    try {
        adjustBright();
    } catch (SettingNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Button btn=(Button)findViewById(R.id.button1);

    btn.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // TODO Auto-generated method stub
            layoutParams.screenBrightness=-1;
            getWindow().setAttributes(layoutParams);
        }
    });



}

private void adjustBright() throws SettingNotFoundException {
    // TODO Auto-generated method stub
    int brightnessMode = Settings.System.getInt(getContentResolver(),
            Settings.System.SCREEN_BRIGHTNESS_MODE);
    if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
        Settings.System.putInt(getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE,
                Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
    }

    layoutParams = getWindow().getAttributes();
    layoutParams.screenBrightness = 0.1F;
    getWindow().setAttributes(layoutParams);
}
}

关于java - 安卓SDK : How do you set the screen brightness,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12935488/

相关文章:

java - Expandablelistview subview 呈现两次(尽管高度设置为 match_parent)

java - 如何阻止扫描仪接受输入

android - 我可以在使用 Linkify 后更改 TextView 链接文本吗?

java - 关于单选按钮的选中状态

定义paint()时Java组件不显示

Java EE 部署问题

java - 如果我们无法泛化方法参数,我们是否需要接口(interface)/契约

android - "Error:(2) Error retrieving parent for item No resource found that matches the given name ' android :TextAppearance. Material.Widget.Button.Inverse'

java - 从 SD 卡获取图像并显示在 ImageView 上的问题

android - 循环检查互联网 Activity