Android 10 推出「根據日常安排」省電模式時間表選項。這個選項可讓 OEM 選擇的應用程式向系統提供信號,以便更智慧地安排省電模式。這個選項需要設定,且可選擇是否要實作。
裝置設定
供應商規格
如要通知「設定」使用者介面裝置已正確設定,請使用設定疊加層,將 config_batterySaverScheduleProvider
值覆寫為應用程式的套件名稱。
舉例來說,如要讓應用程式套件 com.google.android.apps.turbo
根據日常安排設定控制 ,請設定這個設定值:
<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>
手機現在應該會顯示「根據日常安排」選項。如要驗證,請建構映像檔、刷入手機,然後依序前往「設定」>「電池」>「省電模式」>「省電模式排程」。系統應會顯示「根據日常安排」選項。
預設關閉門檻
新的 config_dynamicPowerSavingsDefaultDisableThreshold
欄位會指定電池電量,如果系統是根據日常安排排程開啟省電模式,當電池電量達到指定值時,系統就會關閉省電模式。系統預設為 80%,但你可以變更這項設定。
應用程式設定
權限
應用程式必須具備 android.permission.POWER_SAVER
權限,才能透過 API 開啟省電模式。這是簽章/特殊權限,因此請在 privapp-whitelist
中授予要觸發省電模式的應用程式這項權限。
將 privapp
權限授予應用程式的範例:
<privapp-permissions package="com.google.android.apps.turbo">
<permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>
如果沒有預先授予系統映像檔中應用程式版本的這項權限,應用程式就無法取得權限或正確呼叫 API。系統不會提供一般權限錯誤以外的任何意見回饋,因此請確認您可以呼叫 API 並觀察其效果。
安裝
如要讓「根據日常安排」正常運作,您必須在系統映像檔中預先安裝應用程式,並授予必要權限。只授予一個應用程式 POWER_SAVER
權限,並允許該應用程式透過常式 API 控制 POWER_SAVER
。如果有多個應用程式嘗試使用這項權限和 API,系統不支援也不會指定該功能的行為。
觸發省電模式
API
假設目前設定成功,設定中指定的 OEM 應用程式應能順利呼叫 PowerManager 中的相關方法,以觸發省電模式:
public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)
如果啟用「根據日常安排」省電模式時間表選項,且應用程式使用 powerSaveHint
的 true
值呼叫這個方法,系統就會開啟省電模式。指定 disableThreshold
,這樣一來,即使應用程式無法與系統通訊,系統仍會知道在電池電量達到哪個百分比時,可以安全地關閉省電模式。
與以百分比為準的自動省電模式相同,這項 API 也會受到使用者覆寫和省電模式暫緩的影響。詳情請參閱 API 說明文件。
如要確認 API 是否成功呼叫,請查詢全域設定,驗證後端設定值是否根據 API 呼叫而變更。
舉例來說,如果使用者選取「一般省電」模式,且應用程式正在呼叫 setDynamicPowerSaveHint(true, 10)
,則全域設定應具有下列值:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1
如果接著呼叫 setDynamicPowerSaveHint(false, 25)
,值應為:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0
您可以使用下列 adb
指令檢查這些值:
adb shell settings get global <setting-name>
驗證
由於無法得知 OEM 會使用哪種行為來決定何時觸發例行省電模式,因此無法自動驗證這項功能。因此,OEM 必須負責測試整合服務,確保行為符合預期。請特別確認裝置可以執行下列工作:
- 使用者在省電模式排程使用者介面中選取「依百分比」,然後選取 15%。只有在電量達到 15% 時,省電模式才會自動開啟。
- 使用者在省電模式排程 UI 中選取「根據日常安排」。應用程式使用
true
呼叫 API 時,系統會開啟省電模式。此外,如果裝置充電至指定電量,且未接上電源,省電模式就會自動關閉。 - 使用者在省電模式排程 UI 中選取「無」。省電模式「絕不」應自動開啟。
- 如果應用程式開啟省電模式,且使用者手動將省電模式設為關閉 (使用快速設定、設定等),省電模式應維持關閉狀態,直到使用者再次手動開啟或插入裝置為止。