Android 10, rutine göre adlı bir pil tasarrufu programı seçeneği sunar. 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 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österilir.
Varsayılan kapalı eşik
Yeni config_dynamicPowerSavingsDefaultDisableThreshold
alanı, rutine dayalı planlayıcı tarafından etkinleştirildiyse sistemin pil tasarrufunu kapatacağı pil düzeyini belirtir. 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/imtiyazlı bir izindir. Bu nedenle, privapp-whitelist
cihazınızda pil tasarrufunu tetikleyebilmesini 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
izin verin ve rutine dayalı API'leri kontrol etmesine izin verin. Birden fazla uygulama izni ve API'leri kullanmaya çalıştığında özelliğin davranışı desteklenmez ve belirtilmez.
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 dayalı pil tasarrufu programı seçeneği etkinse ve uygulama bu yöntemi powerSaveHint
için true
değeriyle çağırıyorsa pil tasarrufu açılır. Uygulama sistemle iletişim kuramazsa sistemin pil tasarrufunu hangi pil yüzdesinde kapatabileceğini bilmesi için disableThreshold
değerini belirtin.
Bu API, yüzdeye dayalı otomatik pil tasarrufu ile aynı şekilde kullanıcı tarafından geçersiz kılınmaya ve pil tasarrufunun ertelenmesine tabidir. Daha fazla bilgi için API dokümanlarına 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 ayarlarda aşağıdaki değerler olmalıdır:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1
Ardından setDynamicPowerSaveHint(false, 25)
işlevini çağırırsanız değerler şöyle 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 planı 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 edilip 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çar ve kullanıcı, pil tasarrufunu manuel olarak geçersiz kılarak tekrar kapatırsa (Hızlı Ayarlar, Ayarlar vb. kullanılarak) kullanıcı manuel olarak tekrar açana veya cihazı fişe takana kadar KAPALI kalır.