1# IPowerInterface 2 3 4## 概述 5 6休眠/唤醒操作、订阅休眠/唤醒状态、运行锁管理的接口。 7 8**起始版本:** 3.1 9 10**相关模块:**[Power](power-v12.md) 11 12 13## 汇总 14 15 16### Public 成员函数 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [RegisterCallback](#registercallback) ([in] [IPowerHdiCallback](interface_i_power_hdi_callback.md) ipowerHdiCallback) | 注册休眠/唤醒状态的回调。 | 21| [StartSuspend](#startsuspend) () | 执行设备休眠操作。 | 22| [StopSuspend](#stopsuspend) () | 执行设备唤醒操作。 | 23| [ForceSuspend](#forcesuspend) () | 执行设备强制休眠操作。 | 24| [SuspendBlock](#suspendblock) ([in] String name) | 打开运行锁,阻止休眠。 | 25| [SuspendUnblock](#suspendunblock) ([in] String name) | 关闭运行锁,取消阻止休眠。 | 26| [PowerDump](#powerdump) ([out] String info) | 获取电源的Dump信息。 | 27| [HoldRunningLock](#holdrunninglock) ([in] struct [RunningLockInfo](_running_lock_info.md) info) | 持有运行锁,阻止设备休眠。 | 28| [UnholdRunningLock](#unholdrunninglock) ([in] struct [RunningLockInfo](_running_lock_info.md) info) | 解除运行锁,解除设备休眠。 | 29| [GetWakeupReason](#getwakeupreason) ([out] String reason) | 获取系统唤醒原因。 | 30| [HoldRunningLockExt](#holdrunninglockext) ([in] struct [RunningLockInfo](_running_lock_info.md) info, [in] unsigned long lockid, [in] String bundleName) | 持有运行锁,阻止设备休眠。 | 31| [UnholdRunningLockExt](#unholdrunninglockext) ([in] struct [RunningLockInfo](_running_lock_info.md) info, [in] unsigned long lockid, [in] String bundleName) | 解除运行锁,解除设备休眠。 | 32| [RegisterRunningLockCallback](#registerrunninglockcallback) ([in] [IPowerRunningLockCallback](interface_i_power_running_lock_callback.md) iPowerRunningLockCallback) | 注册运行锁状态的回调函数。 | 33| [UnRegisterRunningLockCallback](#unregisterrunninglockcallback) () | 取消注册运行锁状态的回调函数。 | 34| [Hibernate](#hibernate) () | 使设备进入S4休眠状态。 | 35| [SetSuspendTag](#setsuspendtag) ([in] String tag) | 在休眠前设置休眠标签。 通过设置特殊的休眠标签触发休眠,触发内核和硬件支持的特殊休眠模式。 如果没有设置休眠标签,则在休眠时触发标准S3休眠模式。 | 36| [SetPowerConfig](#setpowerconfig) ([in] String scene, [in] String value) | 设置与场景名称相关的设置路径文件值。 | 37| [GetPowerConfig](#getpowerconfig) ([in] String scene, [out] String value) | 获取与场景名称相关的获取路径文件值。 | 38 39 40## 成员函数说明 41 42 43### ForceSuspend() 44 45``` 46IPowerInterface::ForceSuspend() 47``` 48 49**描述** 50 51执行设备强制休眠操作。 52 53**起始版本:** 3.1 54 55**返回:** 56 57HDF_SUCCESS 表示强制休眠成功;返回其他值表示强制休眠失败。 58 59 60### GetPowerConfig() 61 62``` 63IPowerInterface::GetPowerConfig([in] String scene, [out] String value) 64``` 65 66**描述** 67 68获取与场景名称相关的获取路径文件值。 69 70**起始版本:** 5.0 71 72**参数:** 73 74| 名称 | 描述 | 75| -------- | -------- | 76| scene | 电源配置json文件中定义的场景名称。 | 77| value | 获取路径文件的值。 | 78 79**返回:** 80 81HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 82 83 84### GetWakeupReason() 85 86``` 87IPowerInterface::GetWakeupReason([out] String reason) 88``` 89 90**描述** 91 92获取系统唤醒原因。 93 94**起始版本:** 4.1 95 96**参数:** 97 98| 名称 | 描述 | 99| -------- | -------- | 100| reason | 唤醒原因。 | 101 102**返回:** 103 104HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 105 106 107### Hibernate() 108 109``` 110IPowerInterface::Hibernate() 111``` 112 113**描述** 114 115使设备进入S4休眠状态。 116 117**起始版本:** 5.0 118 119**返回:** 120 121HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 122 123 124### HoldRunningLock() 125 126``` 127IPowerInterface::HoldRunningLock([in] struct RunningLockInfo info) 128``` 129 130**描述** 131 132持有运行锁,阻止设备休眠。 133 134**起始版本:** 4.0 135 136**参数:** 137 138| 名称 | 描述 | 139| -------- | -------- | 140| info | 输入参数,运行锁信息。 | 141 142**返回:** 143 144HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 145 146 147### HoldRunningLockExt() 148 149``` 150IPowerInterface::HoldRunningLockExt([in] struct RunningLockInfo info, [in] unsigned long lockid, [in] String bundleName) 151``` 152 153**描述** 154 155持有运行锁,阻止设备休眠。 156 157**起始版本:** 4.1 158 159**参数:** 160 161| 名称 | 描述 | 162| -------- | -------- | 163| info | 输入参数,运行锁扩展信息。 | 164| lockid | 输入参数,运行锁id。 | 165| bundleName | 输入参数,应用包名。 | 166 167**返回:** 168 169HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 170 171 172### PowerDump() 173 174``` 175IPowerInterface::PowerDump([out] String info) 176``` 177 178**描述** 179 180获取电源的Dump信息。 181 182**起始版本:** 3.1 183 184**参数:** 185 186| 名称 | 描述 | 187| -------- | -------- | 188| info | 输出参数,电源的Dump信息。 | 189 190**返回:** 191 192HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 193 194 195### RegisterCallback() 196 197``` 198IPowerInterface::RegisterCallback([in] IPowerHdiCallback ipowerHdiCallback) 199``` 200 201**描述** 202 203注册休眠/唤醒状态的回调。 204 205**起始版本:** 3.1 206 207**参数:** 208 209| 名称 | 描述 | 210| -------- | -------- | 211| ipowerHdiCallback | 输入参数,服务注册的回调。 | 212 213**返回:** 214 215HDF_SUCCESS 表示注册成功,其它返回值表示注册失败。 216 217**参见:** 218 219[IPowerHdiCallback](interface_i_power_hdi_callback.md) 220 221 222### RegisterRunningLockCallback() 223 224``` 225IPowerInterface::RegisterRunningLockCallback([in] IPowerRunningLockCallback iPowerRunningLockCallback) 226``` 227 228**描述** 229 230注册运行锁状态的回调函数。 231 232**起始版本:** 4.1 233 234**参数:** 235 236| 名称 | 描述 | 237| -------- | -------- | 238| iPowerRunningLockCallback | 注册的回调信息。 | 239 240**返回:** 241 242HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 243 244**参见:** 245 246[IPowerRunningLockCallback](interface_i_power_running_lock_callback.md) 247 248 249### SetPowerConfig() 250 251``` 252IPowerInterface::SetPowerConfig([in] String scene, [in] String value) 253``` 254 255**描述** 256 257设置与场景名称相关的设置路径文件值。 258 259**起始版本:** 5.0 260 261**参数:** 262 263| 名称 | 描述 | 264| -------- | -------- | 265| scene | 在电源配置JSON文件中定义的场景名称。 | 266| value | 设置路径文件的值。 | 267 268**返回:** 269 270HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 271 272 273### SetSuspendTag() 274 275``` 276IPowerInterface::SetSuspendTag([in] String tag) 277``` 278 279**描述** 280 281在休眠前设置休眠标签。 通过设置特殊的休眠标签触发休眠,触发内核和硬件支持的特殊休眠模式。 如果没有设置休眠标签,则在休眠时触发标准S3休眠模式。 282 283**起始版本:** 5.0 284 285**参数:** 286 287| 名称 | 描述 | 288| -------- | -------- | 289| tag | 休眠标签。 | 290 291**返回:** 292 293HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 294 295 296### StartSuspend() 297 298``` 299IPowerInterface::StartSuspend() 300``` 301 302**描述** 303 304执行设备休眠操作。 305 306**起始版本:** 3.1 307 308**返回:** 309 310HDF_SUCCESS 表示休眠成功,其它返回值表示休眠失败。 311 312 313### StopSuspend() 314 315``` 316IPowerInterface::StopSuspend() 317``` 318 319**描述** 320 321执行设备唤醒操作。 322 323**起始版本:** 3.1 324 325**返回:** 326 327HDF_SUCCESS 表示唤醒成功;返回其他值表示唤醒失败。 328 329 330### SuspendBlock() 331 332``` 333IPowerInterface::SuspendBlock([in] String name) 334``` 335 336**描述** 337 338打开运行锁,阻止休眠。 339 340**起始版本:** 3.1 341 342**废弃版本:** 从4.0版本起废弃,使用WriteWakeCount替代。 343 344**参数:** 345 346| 名称 | 描述 | 347| -------- | -------- | 348| name | 输入参数,运行锁的名称。 | 349 350**返回:** 351 352HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 353 354 355### SuspendUnblock() 356 357``` 358IPowerInterface::SuspendUnblock([in] String name) 359``` 360 361**描述** 362 363关闭运行锁,取消阻止休眠。 364 365**起始版本:** 3.1 366 367**废弃版本:** 从4.0版本起废弃,使用WriteWakeCount替代。 368 369**参数:** 370 371| 名称 | 描述 | 372| -------- | -------- | 373| name | 输入参数,运行锁的名称。 | 374 375**返回:** 376 377HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 378 379 380### UnholdRunningLock() 381 382``` 383IPowerInterface::UnholdRunningLock([in] struct RunningLockInfo info) 384``` 385 386**描述** 387 388解除运行锁,解除设备休眠。 389 390**起始版本:** 4.0 391 392**参数:** 393 394| 名称 | 描述 | 395| -------- | -------- | 396| info | 输入参数,运行锁信息。 | 397 398**返回:** 399 400HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 401 402 403### UnholdRunningLockExt() 404 405``` 406IPowerInterface::UnholdRunningLockExt([in] struct RunningLockInfo info, [in] unsigned long lockid, [in] String bundleName) 407``` 408 409**描述** 410 411解除运行锁,解除设备休眠。 412 413**起始版本:** 4.1 414 415**参数:** 416 417| 名称 | 描述 | 418| -------- | -------- | 419| info | 输入参数,运行锁扩展信息。 | 420| lockid | 输入参数,运行锁id。 | 421| bundleName | 输入参数,应用包名。 | 422 423**返回:** 424 425HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。 426 427 428### UnRegisterRunningLockCallback() 429 430``` 431IPowerInterface::UnRegisterRunningLockCallback() 432``` 433 434**描述** 435 436取消注册运行锁状态的回调函数。 437 438**起始版本:** 4.1 439 440**返回:** 441 442HDF_SUCCESS 表示操作成功;返回其他值表示操作失败。