Rutin Pil Tasarrufu

Android 10, rutine dayalı olarak adlandırılan 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 sinyaller sağlamasına olanak tanır. Bu seçenek yapılandırma gerektirir ve uygulanması isteğe bağlıdır.

Cihaz konfigürasyonu

Sağlayıcı spesifikasyonu

Ayarlar kullanıcı arayüzüne cihazın doğru şekilde yapılandırıldığını bildirmek için config_batterySaverScheduleProvider değerini uygulamanızın paket adıyla geçersiz kılmak üzere yapılandırma katmanınızı kullanın.

Örneğin, com.google.android.apps.turbo uygulama paketinin rutin ayarları temel alarak 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>

Artık telefon rutine dayalı seçeneğini göstermelidir. Doğrulamak için görselinizi oluşturun, bir telefona flaşlayın ve Ayarlar > Pil > Pil Tasarrufu > Pil Tasarruf Programı seçeneğine gidin. Rutine dayalı seçeneği görünmelidir.

Varsayılan kapalı eşik

Yeni config_dynamicPowerSavingsDefaultDisableThreshold alanı , rutin zamanlayıcıya dayalı olarak açılmışsa 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 korunmaktadır. Bu bir imza/ayrıcalıklı izindir, bu nedenle pil tasarrufunu tetikleyebilmesini istediğiniz uygulamaya privapp-whitelist 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 uygulamanın sürümüne önceden vermezseniz uygulama izni alamaz veya API'leri düzgün şekilde çağıramaz. Sistem olağan izin hatalarının ötesinde herhangi bir geri bildirim sağlamaz; dolayısıyla API'leri çağırabildiğinizi ve etkilerini gözlemleyebildiğinizi doğrulayın.

Kurulum

Rutinin düzgün çalışması için uygulamayı sistem görüntüsüne gerekli izinlerle önceden yüklemeniz gerekir. Yalnızca bir uygulamaya POWER_SAVER izni verin ve rutin API'leri temel alarak kontrol etmesine izin verin. Birden fazla uygulamanın izni kullanmaya çalıştığı ve API'lerin desteklenmediği ve belirtilmediği durumlarda özelliğin davranışı.

Pil tasarrufunu tetikleme

API'ler

Kurulumun şu ana kadar başarılı olduğunu varsayarsak, yapılandırmada belirtilen OEM uygulamasının pil tasarrufunu tetiklemek için PowerManager'da ilişkili yöntemi başarıyla çağırabilmesi gerekir:

public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)

Rutin pil tasarrufu zamanlamasına dayalı seçeneği etkinleştirilirse ve uygulama bu yöntemi powerSaveHint için true bir değerle çağırırsa pil tasarrufu açılır. disableThreshold seçeneğini belirtin; böylece uygulama sistemle iletişim kuramıyorsa sistem hangi pil yüzdesinde pil tasarrufunu kapatmanın güvenli olduğunu bilecektir.

Bu API, yüzdeye dayalı otomatik pil tasarrufuyla aynı şekilde kullanıcı geçersiz kılmalarına ve pil tasarrufunun ertelenmesine tabidir. Daha fazla bilgi için API belgelerine bakın.

API'lerin başarıyla çağrıldığını doğrulamak için, yedekleme ayarının API çağrılarına göre değer değiştirdiğini doğrulamak üzere genel ayarları sorgulayın.

Örneğin, kullanıcı rutin pil tasarrufu modunu seçtiyse ve uygulama setDynamicPowerSaveHint(true, 10) çağırıyorsa genel ayarlar şu değerlere sahip olmalıdır:

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1

Daha sonra setDynamicPowerSaveHint(false, 25) öğesini ç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 adb komutunu kullanarak bu değerleri kontrol edebilirsiniz:

adb shell settings get global <setting-name>

Doğrulama

Bu özelliği doğrulamanın otomatik bir yolu yoktur çünkü bir OEM'in rutin pil tasarrufu modunu ne zaman tetikleyeceğine karar vermek için hangi davranışı kullanacağını bilmenin bir yolu yoktur. 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ündeki yüzdeye göre seçim yapar ve %15'i seçer. Pil tasarrufu YALNIZCA %15 pil düzeyine ulaşıldığında otomatik olarak açılmalıdır.
  • Kullanıcı, pil tasarrufu programı kullanıcı arayüzündeki rutine göre seçim yapar. Uygulama API'yi true ile çağırdığında pil tasarrufu açılır. Ayrıca, cihazın belirtilen eşik seviyesine kadar şarj edilmesi ve fişinin çekilmesi durumunda pil tasarrufu otomatik olarak kapanır.
  • Kullanıcı, pil tasarrufu programı kullanıcı arayüzünde hiçbirini seçmez. Pil tasarrufu ASLA otomatik olarak açılmamalıdır.
  • Uygulama pil tasarrufunu açarsa ve kullanıcı pil tasarrufunu tekrar kapatmak için manuel olarak geçersiz kılarsa (Hızlı Ayarlar, Ayarlar vb. kullanarak), kullanıcı manuel olarak tekrar açana veya cihazı fişe takana kadar KAPALI KALMASI gerekir.