Rutin pil tasarrufu

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.