Android 10, rutine göre adlı bir pil tasarrufu program seçeneği sunuyor. Bu seçenek, OEM tarafından seçilen bir uygulamanın daha akıllı pil tasarrufu planlaması için sisteme sinyal göndermesine olanak tanır. Bu seçenek yapılandırma gerektirir ve isteğe bağlı olarak uygulanabilir.
Cihaz yapılandırması
Sağlayıcı spesifikasyonu
Ayarlar kullanıcı arayüzüne, cihazın doğru şekilde yapılandırıldığını bildirmek için yapılandırma yer paylaşımınızı kullanarak config_batterySaverScheduleProvider
değerini, uygulamanızın paket adıyla geçersiz kılın.
Örneğin, com.google.android.apps.turbo
uygulama paketinin rutine dayalı ayarını kontrol etmesini istiyorsanız aşağıdaki yapılandırma değerini ayarlarsınız:
<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>
Telefonda artık rutine göre seçeneği gösterilir. Doğrulamak için resminizi derleyin, bir telefona yükleyin ve Ayarlar > Pil > Pil Tasarrufu > Pil Tasarrufu Programı'na gidin. Rutine göre seçeneği görünecektir.
Varsayılan kapalı eşik
Yeni config_dynamicPowerSavingsDefaultDisableThreshold
alanında, rutininize göre planlayıcı tarafından açılmışsa sistemin pil tasarrufunu kapatacağı pil düzeyi belirtilir. Sistem varsayılanı %80'dir, ancak bunu değiştirebilirsiniz.
Uygulama yapılandırması
İzinler
Uygulamanın, pil tasarrufunu uygulamadan açması için gereken API'ler android.permission.POWER_SAVER
izniyle korunur. Bu imza/ayrıcalıklı bir izindir. Bu nedenle, privapp-whitelist
cihazınızda pil tasarrufunu tetiklemesini istediğiniz uygulamaya bu izni verin.
Bir uygulamaya privapp
izni verme örneği:
<privapp-permissions package="com.google.android.apps.turbo">
<permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>
Sistem görüntüsünde uygulamanın sürümüne bu izni önceden vermezseniz uygulama izni alamaz veya API'leri düzgün şekilde çağıramaz. Sistem, normal izin hatalarının dışında herhangi bir geri bildirim sağlamaz. Bu nedenle, API'leri çağırıp etkilerini gözlemleyebildiğinizi doğrulayın.
Kurulum
Rutin temelli özelliğinin düzgün çalışması için uygulamayı, gerekli izinle sistem resmine önceden yüklemeniz gerekir. Yalnızca bir uygulamaya POWER_SAVER
izni verin ve rutinlere dayalı API'leri kontrol etmesine izin verin. İzni birden fazla uygulama kullanmaya çalıştığında ve API'ler desteklenmediğinde ve belirtilmemişse özelliğin davranışı.
Pil tasarrufunu tetikleme
API'ler
Kurulumun şimdiye kadar başarılı olduğu varsayıldığında, yapılandırmada belirtilen OEM uygulaması, pil tasarrufunu tetiklemek için PowerManager'da ilişkili yöntemi başarıyla çağırabilir:
public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)
Rutine göre pil tasarrufu programı seçeneği etkinleştirilirse ve uygulama bu yöntemi powerSaveHint
için true
değeriyle çağırırsa pil tasarrufu açılır. Uygulama sistemle iletişim kuramazsa sistemin hangi pil yüzdesinde pil tasarrufunu kapatmanın güvenli olduğunu bilmesi için disableThreshold
değerini belirtin.
Bu API, yüzdeye dayalı otomatik pil tasarrufu ile aynı şekilde kullanıcıların geçersiz kılma işlemlerine ve pil tasarrufuna tabidir. Daha fazla bilgi için API belgelerine bakın.
API'lerin başarıyla çağrıldığını doğrulamak için, yedek ayarın değerinin API çağrılarına göre değiştiğini doğrulamak üzere ayarları global olarak sorgulayın.
Örneğin, kullanıcı rutin pil tasarrufu modunu seçtiyse ve uygulama setDynamicPowerSaveHint(true, 10)
çağrısı yapıyorsa genel ayarlar aşağıdaki değerlere sahip olmalıdır:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1
Ardından setDynamicPowerSaveHint(false, 25)
yöntemini çağırırsanız değerler şu şekilde olmalıdır:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0
Bu değerleri şu adb
komutunu kullanarak kontrol edebilirsiniz:
adb shell settings get global <setting-name>
Doğrulama
OEM'lerin rutin pil tasarrufu modunu ne zaman tetikleyeceğine karar vermek için hangi davranışı kullanacağını bilmenin bir yolu olmadığından bu özelliğin otomatik olarak doğrulanması mümkün değildir. Bu nedenle OEM'ler, davranışın beklentileri karşıladığından emin olmak için entegrasyonlarını test etmekten sorumludur. Özellikle cihazın aşağıdaki görevleri yerine getirebildiğini doğrulayın:
- Kullanıcı, pil tasarrufu program kullanıcı arayüzünde yüzdeye göre'yi ve %15'i seçer. Pil tasarrufu, YALNIZCA pil %15'e düştüğünde otomatik olarak açılmalıdır.
- Kullanıcı, pil tasarrufu programı kullanıcı arayüzünde rutine göre'yi seçer. Uygulama, API'yi
true
ile çağrdığında pil tasarrufu açılır. Ayrıca, cihaz belirtilen eşik seviyesine kadar şarj edildikten sonra fişi çekilirse Pil Tasarrufu otomatik olarak kapanır. - Kullanıcı, pil tasarrufu programı kullanıcı arayüzünde yok'u seçer. Pil tasarrufu HİÇBİR ZAMAN otomatik olarak açılmamalıdır.
- Uygulama pil tasarrufunu açarsa ve kullanıcı tekrar kapanması için pil tasarrufunu manuel olarak geçersiz kılarsa (Hızlı Ayarlar, Ayarlar vb. kullanılarak) kullanıcı, pil tasarrufunu manuel olarak tekrar açana veya cihazı fişe takana kadar KAPALI KALICI olmalıdır.