我只是試圖打開和關閉自動亮度。 我開始使用此代碼(onCreate方法內)如何打開和關閉自動亮度? (不是重複)
final ToggleButton autoBrightToggle = (ToggleButton) findViewById(R.id.brightToggle);
// display auto brightness state
final ToggleButton autoBrightToggle = (ToggleButton) findViewById(R.id.autoToggle);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
autoBrightToggle.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (autoBrightToggle.isChecked()) {
setAutoBright(true);
} else {
setAutoBright(false);
}
}
}); // end anonymous OnClickListener function
// toggle the brightness mode
private void setAutoBright(boolean mode) {
if (mode) {
Settings.System.putInt(cr, SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
} else {
Settings.System.putInt(cr, SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
}
}
似乎這不工作。 setAutoBrightnessMode()方法也在onResume()中再次調用,但具有相同的非結果。 無論如何,如果有人覺得這個問題是多餘的,但是其他帖子沒有讓我去哪裏,我很抱歉!
(FWIW - 我在我的舊的Droid X和我的Galaxy Nexus的測試這個,而不是模擬器)
編輯 - 更新本: 我確信,現在我沒有看到任何我99%更改「設置」面板和桌面小部件中反映的「自動亮度」模式 - 儘管我實際上可能正在更改其值。 問題的一部分是我不知道如果自動亮度開啓或不開啓,確切地確定!
例如,屏幕快速和明顯地改變?我一直期待根據環境立即發現明亮的亮度變化 - 但也許這些變化很微妙?並在更長的時間?或者在亮度變化之前可能需要30秒或更長時間的環境變化?
有人可以建議我如何跟蹤?我試着查詢Settings.System.SCREEN_BRIGHTNESS_MODE恆 - 掛鉤這種方法到一個文本框:
private int getAutoBrightnessMode() {
try {
int brightnessMode = Settings.System.getInt(cr, SCREEN_BRIGHTNESS_MODE);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
int brightnessMode = -10000;
}
return brightnessMode;
}
但它始終即使讀數爲0,一個的onResume()。 : - ((
我知道這是一個簡單的程序,但我試圖自己學習這些東西,並且幾乎沒有正式的CS培訓......所以我只能說我很這個沮喪,覺得我把自己累得一個角落裏,在這一點上我很惱火同心難改了。
因此,幫助將是巨大的。
什麼都沒有?我希望這是簡單的! – 2012-02-19 07:22:20
我想你將不得不在Android清單中授予適當的權限(例如'android.permission.WRITE_SETTINGS')。 – 2012-02-20 20:10:53
謝謝 - 我確實這麼做了。應該提到這一點。 – 2012-02-21 00:44:08