跳至主要內容

power_manager - 电池管理

约 956 字大约 3 分钟道无涯

此模块可让您控制本应用的电源策略,通过忽略电池优化来让本应用在后台时更不容易系统杀死。使用此API有可能影响设备的电池寿命。

目录

接口

函数

函数

isIgnoringBatteryOptimizations

isIgnoringBatteryOptimizations(pkg?): any

返回当前是否对应用pkg启用了【忽略电池优化】。

示例

"nodejs";
const { isIgnoringBatteryOptimizations } = require('power_manager');
console.log('isIgnoringBatteryOptimizations:', isIgnoringBatteryOptimizations());

参数

名称类型默认值描述
pkgstringpackageName应用包名,默认为本应用包名

返回值

any

是否已忽略电池优化


isScreenOn

isScreenOn(): boolean

如果设备处于交互状态,则返回 true。

当此方法返回 true 时,设备处于唤醒状态并准备好与用户交互(尽管这并不能保证用户此时正在积极地与设备交互)。主屏幕通常在此状态下打开。某些功能(例如接近传感器)可能会暂时关闭屏幕,同时仍使设备处于交互状态。

当此方法返回 false 时,设备正在打瞌睡或睡着,并且必须在它准备好再次与用户交互之前被唤醒。在这种状态下,主屏幕通常是关闭的。某些功能,例如“环境模式”可能会导致主屏幕保持开启(尽管处于低功耗状态)以在设备打盹时显示系统提供的内容。

示例

"nodejs";
const { isScreenOn } = require('power_manager');
console.log(isScreenOn());

返回值

boolean


newWakeLock

newWakeLock(levelAndFlags, tag): WakeLock

创建具有指定级别和标志的新唤醒锁。

levelAndFlags 参数指定使用逻辑或"|"运算符组合的唤醒锁定级别和可选标志。

唤醒锁定级别为:PARTIAL_WAKE_LOCK、FULL_WAKE_LOCK、SCREEN_DIM_WAKE_LOCK 和 SCREEN_BRIGHT_WAKE_LOCK。必须将确切的一个唤醒锁定级别指定为 levelAndFlags 参数的一部分。

唤醒锁定标志是:ACQUIRE_CAUSES_WAKEUP 和 ON_AFTER_RELEASE。多个标志可以组合为 levelAndFlags 参数的一部分。

在对象上调用 acquire() 以获取唤醒锁,并在完成后调用 release()。

尽管无需特殊权限即可创建唤醒锁,但需要 android.Manifest.permission.WAKE_LOCK 权限才能实际获取或释放返回的唤醒锁。

如果使用它来保持屏幕开启,您应该强烈考虑使用 android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON 代替。当用户在应用程序之间移动时,该窗口标志将由平台正确管理,并且不需要特殊权限。此外,使用标志将在多显示器场景中仅保持适当的屏幕打开,而使用唤醒锁将保持每个屏幕都打开。

参见

[PowerManager.newWakeLock](https://developer.android.google.cn/reference/android/os/PowerManager#newWakeLockopen in new window(int, java.lang.String))。

参数

名称类型描述
levelAndFlagsnumber唤醒锁级别和标志值的组合,定义了所请求的 WakeLock 行为。
tagstring用于调试目的的类名(或其他标记)。

返回值

WakeLock


requestIgnoreBatteryOptimizations

requestIgnoreBatteryOptimizations(forceRequest?, pkg?): void

请求用户忽略对应用pkg的电池优化。系统将会弹出一个弹窗提示用户确认,这个过程是异步的,确认结果不会返回。

示例

"nodejs";
const { isIgnoringBatteryOptimizations, requestIgnoreBatteryOptimizations } = require('power_manager');
if (!isIgnoringBatteryOptimizations()) {
   console.log('requestIgnoreBatteryOptimizations');
   requestIgnoreBatteryOptimizations();
}

参数

名称类型默认值描述
forceRequestbooleanfalse如果为false,并且当前已经开启了忽略电池优化,则不执行请求;如果为true,则一律请求忽略电池优化。默认为false。
pkgstringpackageName需要忽略电池优化的包名。默认为本应用包名。

返回值

void


wakeUp

wakeUp(options?): void

获取一个唤醒锁,该唤醒锁将唤醒屏幕并保持一定时间, timeout时间(默认为5秒)后唤醒锁将自动释放。

参见

[PowerManager.newWakeLock](https://developer.android.google.cn/reference/android/os/PowerManager#newWakeLockopen in new window(int, java.lang.String))。

示例

"nodejs";
const { isScreenOn, wakeUp } = require('power_manager');
if (!isScreenOn()) {
    wakeUp();  
}

参数

名称类型描述
options?WakeUpOptions唤醒锁选项

返回值

void