power_manager - 电池管理
power_manager - 电池管理
此模块可让您控制本应用的电源策略,通过忽略电池优化来让本应用在后台时更不容易系统杀死。使用此API有可能影响设备的电池寿命。
目录
接口
函数
函数
isIgnoringBatteryOptimizations
▸ isIgnoringBatteryOptimizations(pkg?
): any
返回当前是否对应用pkg启用了【忽略电池优化】。
示例
"nodejs";
const { isIgnoringBatteryOptimizations } = require('power_manager');
console.log('isIgnoringBatteryOptimizations:', isIgnoringBatteryOptimizations());
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
pkg |
string |
packageName |
应用包名,默认为本应用包名 |
返回值
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 代替。当用户在应用程序之间移动时,该窗口标志将由平台正确管理,并且不需要特殊权限。此外,使用标志将在多显示器场景中仅保持适当的屏幕打开,而使用唤醒锁将保持每个屏幕都打开。
参见
参数
名称 | 类型 | 描述 |
---|---|---|
levelAndFlags |
number |
唤醒锁级别和标志值的组合,定义了所请求的 WakeLock 行为。 |
tag |
string |
用于调试目的的类名(或其他标记)。 |
返回值
requestIgnoreBatteryOptimizations
▸ requestIgnoreBatteryOptimizations(forceRequest?
, pkg?
): void
请求用户忽略对应用pkg的电池优化。系统将会弹出一个弹窗提示用户确认,这个过程是异步的,确认结果不会返回。
示例
"nodejs";
const { isIgnoringBatteryOptimizations, requestIgnoreBatteryOptimizations } = require('power_manager');
if (!isIgnoringBatteryOptimizations()) {
console.log('requestIgnoreBatteryOptimizations');
requestIgnoreBatteryOptimizations();
}
参数
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
forceRequest |
boolean |
false |
如果为false,并且当前已经开启了忽略电池优化,则不执行请求;如果为true,则一律请求忽略电池优化。默认为false。 |
pkg |
string |
packageName |
需要忽略电池优化的包名。默认为本应用包名。 |
返回值
void
wakeUp
▸ wakeUp(options?
): void
获取一个唤醒锁,该唤醒锁将唤醒屏幕并保持一定时间, timeout时间(默认为5秒)后唤醒锁将自动释放。
参见
示例
"nodejs";
const { isScreenOn, wakeUp } = require('power_manager');
if (!isScreenOn()) {
wakeUp();
}
参数
名称 | 类型 | 描述 |
---|---|---|
options? |
WakeUpOptions |
唤醒锁选项 |
返回值
void