Android自动打开省电模式,常规省电模式  |  Android 开源项目  |  Android Open Source Project...

Android 10 引入了一个称为基于常规的省电模式调度选项。借助此选项,原始设备制造商 (OEM) 选择的应用可以向系统提供信号,以实现更智能的省电模式调度。

此选项需要配置,在实现上是可选的。

设备配置

提供程序规范

要告知设置界面设备配置正确,请使用配置叠加层将值 config_batterySaverScheduleProvider 替换为应用的软件包名称。

例如,如果您希望应用软件包 com.google.android.apps.turbo 控制基于常规设置,则可以设置此配置值:

com.google.android.apps.turbo

此时,手机应显示基于常规选项。要进行验证,请编译映像,将其刷入手机,然后转到设置 > 电池 > 省电模式 > 省电模式调度。此时应显示基于常规选项。

默认关闭阈值

新的 config_dynamicPowerSavingsDefaultDisableThreshold 字段用于指定系统关闭省电模式的电池电量,前提是该模式已由基于常规调度程序开启。系统默认设置为 80%,但您可以更改它。

重要提示:请将此值设置为低于 100。此停用阈值可用作提供程序应用因出错而始终尝试触发省电模式时的后备方案。

应用配置

权限

应用从应用中开启省电模式所需的 API 受权限 android.permission.POWER_SAVERandroid.permission.这是一项签名/特许权限,因此请在 privapp-whitelist 中授予您希望其触发省电模式的应用。

向应用授予 privappprivapp 权限的示例:

如果您未将此权限预先授予系统映像上的应用版本,则该应用无法获取权限或正确调用 API。系统不提供常规权限错误之外的任何反馈,因此请验证您是否可以调用 API 并观察其效果。

安装

要使基于常规正常工作,您必须使用必需的权限将应用预安装到系统映像上。仅向一个应用授予 POWER_SAVER 权限,并允许该应用控制基于常规 API。当多个应用尝试使用权限和 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

您可以使用下面的 adbadb 命令检查这些值:

adb shell settings get global

验证

没有自动验证此功能的方法,因为我们没法知道原始设备制造商 (OEM) 将使用什么行为来决定何时触发常规省电模式。因此,原始设备制造商 (OEM) 负责测试其集成,以确保行为符合预期,尤其是验证设备是否可以完成以下任务:

用户在省电模式调度界面中依次选择根据电量百分比和 15%。只有当电量降到 15% 时,省电模式才会自动开启。

用户在省电模式调度界面中选择基于常规。当应用使用 true 调用 API 时,省电模式开启。此外,如果设备充电至指定的电量阈值并断开电源,省电模式将自动关闭。

用户在省电模式调度界面中选择无。省电模式永远不会自动开启。

如果应用开启省电模式,然后用户手动进行替换,将省电模式设置为重新关闭(使用“快速设置”、“设置”等),则该模式应保持关闭状态,直到用户再次手动重新开启或将设备插入电源。

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值