the original question I asked here
However, after I write the code below, no matter which button I click, the brightness of the screen didn't change.
I use Android Studio and API level 21 and use virtual machine Nexus 5 API 21 ×86 and I added user permission in manifest
I create a method to update the screen brightness
public void UpdateBrightness(float brightness)
{
    Settings.System.putFloat(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);
    WindowManager.LayoutParams layoutParams=getWindow().getAttributes();
    layoutParams.screenBrightness = brightness;
    getWindow().setAttributes(layoutParams);
}
This is OnCreate method
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home_screen);
    background = (LinearLayout)findViewById(R.id.background);
    change_dark = (Button)findViewById(R.id.dark);
    change_middle = (Button)findViewById(R.id.middle);
    change_bright = (Button)findViewById(R.id.bright);
    change_dark.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            UpdateBrightness((float)0);
        }
    });
    change_middle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            UpdateBrightness((float)0.5);
        }
    });
    change_bright.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            UpdateBrightness((float)1);
        }
    });
    try{
        Settings.System.putInt(getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS_MODE,
                Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
        Settings.System.getFloat(getContentResolver(),
                Settings.System.SCREEN_BRIGHTNESS);
    }
    catch(Settings.SettingNotFoundException e){
        Log.e("Error", "Cannot access system brightness");
        e.printStackTrace();
    }
}
I don't know why the brightness of the screen didn't change when I press the button, who can find something?