Android 10'da rutine göre adlı bir pil tasarrufu planı seçeneği sunulur. Bu seçenek, OEM tarafından seçilen bir uygulamanın daha akıllı pil tasarrufu planlaması için sisteme sinyaller sağlamasına olanak tanır. Bu seçeneğin yapılandırılması gerekir ve uygulanması isteğe bağlıdır.
Cihaz yapılandırması
Sağlayıcı spesifikasyonu
Cihazın doğru şekilde yapılandırıldığını Ayarlar kullanıcı arayüzüne 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 göre ayarını kontrol etmesini istiyorsanız bu yapılandırma değerini ayarlarsınız:
<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>
Telefon artık rutine göre seçeneğini göstermelidir. Doğrulamak için görüntünüzü oluşturun, bir telefona yükleyin ve Ayarlar > Pil > Pil Tasarrufu > Pil Tasarrufu Planı'na gidin. Rutine göre seçeneği gösterilir.
Varsayılan devre dışı eşiği
Yeni config_dynamicPowerSavingsDefaultDisableThreshold
alanı, rutine dayalı planlayıcı tarafından etkinleştirilmişse 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 etkinleştirmek için ihtiyaç duyduğu API'ler android.permission.POWER_SAVER
izniyle korunur. Bu, bir
imza/ayrıcalıklı izin olduğundan, pil tasarrufunu tetikleyebilmesini istediğiniz uygulamaya privapp-whitelist
cihazınızda 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>
Bu izni sistem görüntüsündeki uygulama sürümüne ö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ğırabildiğinizi ve etkilerini gözlemleyebildiğinizi doğrulayın.
Kurulum
Rutinlere dayalı özelliğinin düzgün çalışması için uygulamayı gerekli izinle birlikte sistem görüntüsüne önceden yüklemeniz gerekir. Yalnızca bir uygulamaya POWER_SAVER
izni verin ve rutine dayalı API'leri kontrol etmesine izin verin. Birden fazla uygulama izin ve API'leri kullanmaya çalıştığında özelliğin davranışı desteklenmez ve belirtilmez.
Pil tasarrufunu tetikleme
API'ler
Kurulumun şu ana kadar başarılı olduğunu varsayarsak yapılandırmada belirtilen OEM uygulaması, pil tasarrufunu tetiklemek için PowerManager'daki ilişkili yöntemi başarıyla çağırabilmelidir:
public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)
Rutin temelinde pil tasarrufu programı seçeneği etkinse ve uygulama, powerSaveHint
için true
değeriyle bu yöntemi çağırırsa pil tasarrufu etkinleştirilir. Uygulama sistemle iletişim kuramasa bile sistemin, pil tasarrufunu kapatmanın güvenli olduğu pil yüzdesini bilmesi için disableThreshold
değerini belirtin.
Bu API, yüzdeye dayalı otomatik pil tasarrufuyla aynı şekilde kullanıcı geçersiz kılmalarına ve pil tasarrufu ertelemeye tabidir. Daha fazla bilgi için API belgelerine göz atın.
API'lerin başarıyla çağrıldığını doğrulamak için, destekleyen ayarın değerinin API çağrılarına göre değiştiğini doğrulamak üzere genel ayarları sorgulayın.
Örneğin, kullanıcı rutin pil tasarrufu modunu seçtiyse ve uygulama setDynamicPowerSaveHint(true, 10)
işlevini çağırıyorsa genel ayarlarda şu 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 şu şekilde olmalıdır:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0
Bu değerleri 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 verirken hangi davranışı kullanacağını bilmenin bir yolu olmadığından bu özelliği doğrulamanın otomatik bir yolu yoktur. Bu nedenle, OEM'ler davranışın beklentileri karşıladığından emin olmak için entegrasyonlarını test etmekle 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 seçer ve %15'i belirler. 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,
true
ile API'yi çağırdığında pil tasarrufu açılır. Ayrıca, cihaz belirtilen eşik seviyesine kadar şarj edilip fişten çekilirse pil tasarrufu otomatik olarak devre dışı kalır. - Kullanıcı, pil tasarrufu programı kullanıcı arayüzünde Yok'u seçerse. Pil tasarrufu HİÇBİR ZAMAN otomatik olarak açılmamalıdır.
- Uygulama pil tasarrufunu etkinleştirirse ve kullanıcı pil tasarrufunu tekrar devre dışı bırakmak için manuel olarak geçersiz kılarsa (Hızlı Ayarlar, Ayarlar vb. kullanılarak) pil tasarrufu, kullanıcı tekrar manuel olarak etkinleştirene veya cihazı prize takana kadar DEVRE DIŞI kalmalıdır.