Android 10'da Rutinlere 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 sinyal göndermesine olanak tanır. Bu seçenek yapılandırma gerektirir ve uygulanması isteğe bağlıdır.
Cihaz yapılandırması
Bu bölümde, cihazınızı Rutinlere göre seçeneği için nasıl yapılandıracağınız açıklanmaktadır.
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 Rutinlere göre ayarını kontrol etmesini istiyorsanız şu yapılandırma değerini ayarlayın:
<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>
Doğrulamak için görüntünüzü oluşturun, bir cihaza yükleyin ve Ayarlar'a gidin.
Pil > Pil Tasarrufu > Pil Tasarrufu programı'na gidin. Rutinlere göre seçeneği gösterilir.
Varsayılan devre dışı eşiği
config_dynamicPowerSavingsDefaultDisableThreshold alanı, Rutinlere göre zamanlayıcı Pil Tasarrufu'nu etkinleştirdiyse sistemin Pil Tasarrufu'nu kapatacağı pil seviyesini belirtir. Sistem varsayılanı %80'dir ancak bunu değiştirebilirsiniz.
Uygulama yapılandırması
Bu bölümde, uygulamanızı Based on routine (Rutinlere göre) seçeneğini kullanacak şekilde nasıl yapılandıracağınız açıklanmaktadır.
İzinler
Bir uygulamanın rutin pil tasarrufunu etkinleştirmesi için gereken API'ler android.permission.POWER_SAVER izniyle korunur. Bu, bir imza veya ayrıcalıklı izindir. Bu, uygulamanın sistem görüntüsünde bir priv-app dizininde olması ve bu izni açıkça vermeniz gerektiği anlamına gelir.
Ayrıcalıklı uygulamalar için, uygulama ile aynı bölümdeki /etc/permissions/ dizininde bir sistem yapılandırması XML dosyasında izin vermeniz gerekir. Örneğin, com.google.android.apps.turbo paket adına sahip bir uygulamaya android.permission.POWER_SAVER izni vermek için:
<!-- File located at /etc/permissions/privapp-permissions-DEVICE_NAME.xml -->
<permissions>
    <privapp-permissions package="com.google.android.apps.turbo">
        <permission name="android.permission.POWER_SAVER"/>
    </privapp-permissions>
</permissions>
Bu izni sistem görüntüsündeki uygulamaya önceden vermezseniz uygulama izni alamaz veya API'leri başarıyla çağıramaz. Sistem, standart izin hatalarının ötesinde geri bildirim sağlamaz. Bu nedenle, uygulamanın API'leri çağırabildiğini ve etkilerini gözlemleyebildiğini doğrulamak çok önemlidir.
Kurulum
Rutinlere göre ö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 android.permission.POWER_SAVER izni verin ve bu uygulamanın Based on routine API'lerini kontrol etmesine izin verin. Birden fazla uygulama izni ve API'leri kullanmaya çalışırsa özelliğin davranışı desteklenmez ve belirtilmez.
Pil Tasarrufu rutinini tetikleme
Bu bölümde, uygulamanızın sağlanan API'leri kullanarak rutine dayalı pil tasarrufunu nasıl tetikleyebileceği açıklanmaktadır.
API'ler
Kurulum başarılı olursa yapılandırmada belirtilen OEM uygulaması, pil tasarrufunu tetiklemek için PowerManager içindeki ilişkili yöntemi başarıyla çağırabilir:
public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)
Rutin temelinde pil tasarrufu planı 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 kuramadığında sistemin, Pil Tasarrufu'nu 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 bakın.
API'lerin başarıyla çağrıldığını doğrulamak için genel ayarları sorgulayarak destekleyen ayar değerinin API çağrılarına göre değiştiğini onaylayın.
Örneğin, Based on routine (Rutinlere göre) pil tasarrufu modunu seçerseniz ve uygulama setDynamicPowerSaveHint(true, 10) çağrıları yaparsa genel ayarlarda şu değerler bulunur:
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 şunlar olur:
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, Rutine dayalı Pil Tasarrufu modunu tetikleyen davranışı belirlediğinden bu özelliği otomatik olarak doğrulamanın bir yolu yoktur. OEM'ler, davranışın beklentileri karşıladığını doğrulamak için entegrasyonlarını test etmelidir. Özellikle, cihazın aşağıdaki görevleri gerçekleştirebildiğini doğrulayın:
- Yüzdeye göre: Pil tasarrufu planı kullanıcı arayüzünde Yüzdeye göre'yi seçip %15'i belirlerseniz Pil Tasarrufu yalnızca pil %15'e ulaştığında otomatik olarak açılır.
 - Rutin tabanlı: Pil tasarrufu programı kullanıcı arayüzünde Rutin tabanlı'yı seçerseniz uygulama, API'yi 
trueile ç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 kapanır. - Yok: Pil tasarrufu planı kullanıcı arayüzünde Yok'u seçerseniz Pil Tasarrufu hiçbir zaman otomatik olarak açılmaz.
 - Manuel geçersiz kılma: Uygulama Pil Tasarrufu'nu açarsa ve siz Hızlı Ayarlar, Ayarlar veya başka yöntemleri kullanarak Pil Tasarrufu'nu manuel olarak geçersiz kılıp kapatırsanız manuel olarak tekrar açana ya da cihazı prize takana kadar kapalı kalır.