Kecerahan Sistem Mengubah Suai Secara Program
Percubaan dan Isu Awal:
Anda telah cuba menukar kecerahan sistem secara pengaturcaraan menggunakan:
<code class="java">WindowManager.LayoutParams lp = window.getAttributes();
lp.screenBrightness = (255);
window.setAttributes(lp);</code>
Salin selepas log masuk
Walau bagaimanapun, kaedah ini telah terbukti tidak berkesan.
Penyelesaian:
Untuk berjaya menukar kecerahan sistem, anda harus menggunakan pendekatan berikut :
-
Memulakan Pembolehubah:
- Isytiharkan pembolehubah untuk menyimpan nilai kecerahan yang diingini (cth., kecerahan).
- Buat pemegang ContentResolver untuk mengakses tetapan sistem (cth., cResolver).
- Dapatkan rujukan kepada objek tetingkap semasa (cth., tetingkap).
-
Kendalikan Tetapan Kecerahan:
- Tetapkan mod kecerahan skrin kepada manual untuk melumpuhkan kecerahan automatik (cth., Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL).
- Dapatkan tahap kecerahan semasa: kecerahan = Settings.System.getInt(cResolver, Settings.System.SCREEN_BRIGHTNESS).
-
Kemas kini Kecerahan:
- Tetapkan kecerahan sistem menggunakan pembolehubah kecerahan yang dilaraskan: Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, brightness).
- Ubah suai atribut tetingkap agar sepadan dengan kecerahan baharu: window.getAttributes ().screenBrightness = kecerahan / 255f.
- Gunakan perubahan pada tetingkap: window.setAttributes(window.getAttributes()).
-
Kebenaran Manifest:
- Tambahkan kebenaran WRITE_SETTINGS pada AndroidManifest.xml anda.
-
Pertimbangan Tambahan:
- Untuk tahap API Android >= 23, anda mungkin perlu meminta kebenaran WRITE_SETTINGS melalui gesaan aktiviti.
Atas ialah kandungan terperinci Bagaimana untuk Melaraskan Kecerahan Sistem Secara Program pada Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!