单击小部件后更改屏幕亮度。 Android的

时间:2014-06-03 15:38:08

标签: android widget brightness

我已经完成了here中的所有内容,但除非不是这样。 我的意思是我的手机说“是的......我的亮度发生了变化”,但我根本看不出任何差异。

点击小部件后,我正在呼叫这个接收器:

public class Brightness extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Intent myIntent = new Intent(context, RefreshClass.class);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, myIntent, 0);
    try {
        pendingIntent.send(context, 0, myIntent);
    } catch (CanceledException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

然后:

public class RefreshClass extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    try {
        int curBrightnessValue = android.provider.Settings.System.getInt(getContentResolver(),
                android.provider.Settings.System.SCREEN_BRIGHTNESS);
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE,
                200);
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 200);

        WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.screenBrightness = 200;
        getWindow().setAttributes(lp);

    } catch (SettingNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    finish();
}

}

在此之后我的亮度值变为200,但实际上我看不出任何差异但是! ..转动后我的屏幕和屏幕上的清新,亮度正在变化,就像应该的那样。 有没有办法迫使android像这样刷新整个屏幕或者可能是我遗漏了什么。帮助!

1 个答案:

答案 0 :(得分:0)

样本中的这一行可能是错误的:


Settings.System.putInt(getContentResolver(),  Settings.System.SCREEN_BRIGHTNESS_MODE,  200);

没有MODE值200。 你应该做这样的事情:


Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);