Rumah >Java >javaTutorial >Bagaimana untuk Melaraskan Kecerahan Sistem Secara Pengaturcaraan dalam Android?
Melaraskan Kecerahan Sistem Secara Pengaturcaraan
Walaupun menetapkan atribut ScreenBrightness bagi parameter susun atur tetingkap, tiada perubahan dalam kecerahan diperhatikan. Isu ini mendorong penerokaan kaedah alternatif untuk mengubah kecerahan sistem secara pemrograman.
Penyelesaian:
Untuk melaraskan kecerahan sistem dengan berkesan, pertimbangkan langkah berikut:
Isytiharkan pembolehubah contoh berikut dalam kelas aktiviti anda:
private int brightness; private ContentResolver cResolver; private Window window;
Dalam kaedah onCreate, dapatkan semula penyelesai kandungan, rujukan tetingkap dan kecerahan sistem semasa :
cResolver = getContentResolver(); window = getWindow(); try { Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); brightness = Settings.System.getInt(cResolver, Settings.System.SCREEN_BRIGHTNESS); } catch (SettingNotFoundException e) { // Handle the error gracefully }
Apabila melaraskan kecerahan, tetapkan kecerahan sistem menggunakan kemas kini pembolehubah kecerahan dan kemas kini atribut tetingkap:
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness); LayoutParams layoutpars = window.getAttributes(); layoutpars.screenBrightness = brightness / 255f; window.setAttributes(layoutpars);
Jangan lupa untuk mengisytiharkan kebenaran yang diperlukan dalam fail AndroidManifest.xml:
<code class="xml"><uses-permission android:name="android.permission.WRITE_SETTINGS" /></code>
Nota:
Untuk tahap API yang lebih besar daripada atau sama dengan 23 (Android 6.0 Marshmallow), anda perlu meminta kebenaran WRITE_SETTINGS melalui Aktiviti Tetapan atau melalui Aktiviti Pustaka Keserasian (ActivityCompat).
Atas ialah kandungan terperinci Bagaimana untuk Melaraskan Kecerahan Sistem Secara Pengaturcaraan dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!