Android 10 memperkenalkan opsi jadwal penghemat baterai yang disebut berdasarkan rutinitas. Opsi ini memungkinkan aplikasi yang dipilih oleh OEM untuk memberikan sinyal ke sistem untuk penjadwalan penghemat baterai yang lebih cerdas. Opsi ini memerlukan konfigurasi, dan bersifat opsional untuk diterapkan.
Konfigurasi perangkat
Spesifikasi penyedia
Untuk memberi tahu UI Setelan bahwa perangkat telah dikonfigurasi dengan benar, gunakan
overlay konfigurasi untuk mengganti nilai config_batterySaverScheduleProvider
dengan
nama paket aplikasi Anda.
Misalnya, jika Anda ingin paket aplikasi com.google.android.apps.turbo
mengontrol setelan berdasarkan rutinitas, maka Anda akan menetapkan nilai konfigurasi ini:
<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>
Sekarang ponsel akan menampilkan opsi berdasarkan rutinitas. Untuk memverifikasi, bangun gambar, flash ke ponsel, dan navigasikan ke Setelan > Baterai > Baterai Penghemat > Jadwal Penghemat Baterai. Opsi berdasarkan rutinitas akan muncul.
Nilai minimum nonaktif
Kolom config_dynamicPowerSavingsDefaultDisableThreshold
baru menentukan
tingkat baterai saat sistem menonaktifkan penghemat baterai, jika diaktifkan
oleh penjadwal berdasarkan rutinitas. Default sistem adalah 80%, tetapi Anda dapat mengubahnya.
Konfigurasi aplikasi
Izin
API yang diperlukan aplikasi untuk mengaktifkan penghemat baterai dari aplikasi dilindungi
dengan izin android.permission.POWER_SAVER
. Ini adalah
tanda tangan/izin hak istimewa, jadi berikan aplikasi yang ingin Anda picu
penghemat baterai pada izin ini di privapp-whitelist
.
Contoh pemberian izin privapp
ke aplikasi:
<privapp-permissions package="com.google.android.apps.turbo">
<permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>
Jika Anda tidak memberikan izin ini terlebih dahulu ke versi aplikasi di sistem aplikasi tidak bisa memperoleh izin atau memanggil API dengan benar. Tujuan sistem tidak memberikan umpan balik di luar kesalahan izin biasanya, jadi memverifikasi bahwa Anda dapat memanggil API dan mengamati efeknya.
Penginstalan
Agar berdasarkan rutinitas berfungsi dengan baik, Anda harus menginstal aplikasi terlebih dahulu di
image sistem dengan izin yang diperlukan. Berikan POWER_SAVER
aplikasi hanya untuk satu aplikasi
dan mengizinkannya mengontrol API berdasarkan rutinitas. Perilaku
fitur saat lebih dari satu aplikasi mencoba menggunakan izin dan API
tidak didukung dan tidak ditentukan.
Memicu penghemat baterai
API
Dengan asumsi penyiapan berhasil sejauh ini, aplikasi OEM yang ditentukan dalam konfigurasi harus berhasil memanggil metode terkait di PowerManager untuk memicu penghemat baterai:
public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)
Jika opsi jadwal penghemat baterai berdasarkan rutinitas diaktifkan dan aplikasi
memanggil metode ini dengan nilai true
untuk powerSaveHint
, yang akan menghemat baterai
menyalakan komputer Anda. Tentukan disableThreshold
agar jika aplikasi tidak dapat berkomunikasi dengan
sistem, sistem masih tahu berapa persentase
baterai yang aman untuk diubah
penghemat baterai yang nonaktif.
API ini dapat diganti oleh pengguna dan penghemat baterai tertunda dengan cara yang sama sebagai penghemat baterai otomatis berbasis persentase. Lihat Dokumentasi API untuk informasi selengkapnya.
Untuk memverifikasi bahwa API berhasil dipanggil, kueri setelan global untuk memverifikasi nilai setelan pencadangan berubah sesuai dengan panggilan API.
Misalnya, jika pengguna memilih mode penghemat baterai rutin dan aplikasi
memanggil setDynamicPowerSaveHint(true, 10)
, setelan global harus memiliki
nilai-nilai ini:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1
Jika Anda kemudian memanggil setDynamicPowerSaveHint(false, 25)
, nilainya harus:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0
Anda dapat memeriksa nilai ini menggunakan perintah adb
ini:
adb shell settings get global <setting-name>
Verifikasi
Tidak ada cara otomatis untuk memverifikasi fitur ini karena tidak ada cara untuk mengetahuinya perilaku apa yang akan digunakan OEM untuk memutuskan kapan harus memicu penghemat baterai secara rutin mode. Oleh karena itu, OEM bertanggung jawab untuk menguji integrasi mereka guna memastikan perilakunya memenuhi ekspektasi. Secara khusus, pastikan perangkat dapat memenuhi tugas berikut:
- Pengguna memilih berdasarkan persentase di UI jadwal penghemat baterai dan memilih 15%. Penghemat baterai akan aktif secara otomatis HANYA saat mencapai 15% baterai.
- Pengguna memilih berdasarkan rutinitas di UI jadwal penghemat baterai. Kapan
aplikasi memanggil API dengan
true
, penghemat baterai diaktifkan. Selain itu, penghemat baterai akan otomatis nonaktif jika perangkat diisi daya menunjukkan tingkat ambang batas dan tidak terhubung. - Pengguna memilih none di UI jadwal penghemat baterai. Penghemat baterai TIDAK BOLEH aktif secara otomatis.
- Jika aplikasi mengaktifkan penghemat baterai dan pengguna mengganti baterai secara manual saver dinonaktifkan lagi (menggunakan Setelan Cepat, Setelan, dll.), seharusnya TETAP NONAKTIF hingga pengguna mengaktifkannya kembali secara manual atau mencolokkan perangkat.