我已经完成了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像这样刷新整个屏幕或者可能是我遗漏了什么。帮助!
答案 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);