6
我需要以編程方式更改屏幕亮度。我閱讀了多種解決方案,如Can't apply system screen brightness programmatically in Android。有效更改屏幕亮度
我的問題是,這些解決方案意味着改變活動是有效的(有像虛擬活動立即完成),我想避免活動開關的開銷。
是否有任何其他解決方案...也許使用本機代碼,以便屏幕亮度會立即改變?
我需要以編程方式更改屏幕亮度。我閱讀了多種解決方案,如Can't apply system screen brightness programmatically in Android。有效更改屏幕亮度
我的問題是,這些解決方案意味着改變活動是有效的(有像虛擬活動立即完成),我想避免活動開關的開銷。
是否有任何其他解決方案...也許使用本機代碼,以便屏幕亮度會立即改變?
以下情況會立即影響單個活動,無需重新啓動它。該活動還會記住暫停/恢復過程中的screenBrightness屬性。
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 1; // 0f - no backlight ... 1f - full backlight
getWindow().setAttributes(lp);
但是,如果您在系統設置中啓用了自動背光級別,則它不起作用。 This solution應該有助於關閉自動背光。
即使啓用了「自動背光級別」,也可以使用WindowManager.LayoutParams設置屏幕亮度。正如文檔中所述,「screenBrightness可以用來覆蓋用戶的首選屏幕亮度」。測試Android 4.1和4.4。這是來自Android框架工程師的確認:https://groups.google.com/forum/#!msg/android-developers/tYlCn7bvAmw/2quRf_ZZZigJ – AnAurelian 2014-05-06 10:27:12