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%,但您也可以
變更內容。
應用程式設定
權限
應用程式需要的 API 可讓應用程式從應用程式啟用省電模式,這些 API 受到 android.permission.POWER_SAVER
權限保護。這是簽章/特權權限,因此請在 privapp-whitelist
中授予您要能夠觸發省電模式的應用程式這項權限。
將 privapp
權限授予應用程式的範例:
<privapp-permissions package="com.google.android.apps.turbo">
<permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>
如果您未預先授予系統映像檔中應用程式版本這項權限,應用程式就無法取得權限或正確呼叫 API。系統除了提供一般權限錯誤以外,不會提供任何意見回饋,因此請確認您可以呼叫 API 並觀察其效果。
安裝
為了讓根據日常安排正常運作,您必須在
具備必要權限的系統映像檔請只將 POWER_SAVER
權限授予一個應用程式,並允許該應用程式控制以例行程序為依據的 API。當有多個應用程式嘗試使用權限和 API 時,系統不支援且未指定該功能的行為。
觸發省電模式
API
假設設定已順利完成,則設定中所指定的原始設備製造商 (OEM) 應用程式應該設定成功 才能順利在 PowerManager 中呼叫相關聯的方法以觸發 省電模式:
public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)
如果啟用「依據日常安排」省電模式時間表選項,且應用程式以 powerSaveHint
的 true
值呼叫此方法,則省電模式會開啟。指定 disableThreshold
,這樣即使應用程式無法與系統通訊,系統仍可知道在電量百分比達到哪個程度時,可安全關閉省電模式。
這個 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 中選取「none」。省電模式絕不應自動開啟。
- 如果應用程式開啟省電模式,但使用者手動覆寫電池電力 即可再次關閉 (使用快速設定、設定等) 時,應保持關閉狀態 關閉,直到使用者手動重新開啟,或將 同時監控每部裝置的位置