1# 电源管理子系统Changelog 2 3## cl.powermgr @ohos.power.d.ts中wakeup、suspend、setScreenOffTime、hibernate接口新增ohos.permission.POWER_MANAGER权限校验、错误码变更 4 5**访问级别** 6 7系统接口 8 9**变更原因** 10 11电源服务中部分ts接口对应native层的权限校验存在问题,违反权限最小化原则,因此需要给相应接口新增权限。 12 13**变更影响** 14 15此变更涉及应用适配。 16 17变更前: 18系统应用可直接访问wakeup、suspend、setScreenOffTime、hibernate接口,无需申请权限。 19 20变更后: 21系统应用需申请ohos.permission.POWER_MANAGER权限后,方可调用wakeup、suspend、setScreenOffTime、hibernate接口,接口权限校验失败会抛出201错误码。 22 23**起始API Level** 24 25- wakeup接口起始API 9 26- suspend接口起始API 9 27- setScreenOffTime接口起始API 12 28- hibernate接口起始API 12 29 30**变更发生版本** 31 32从OpenHarmony SDK 5.1.0.56开始。 33 34**变更的接口/组件** 35 36[@ohos.power.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-basic-services-kit/js-apis-power-sys.md)中如下接口: 37 38- wakeup(detail: string): void 39- suspend(isImmediate?: boolean): void 40- setScreenOffTime(timeout: number): void 41- hibernate(clearMemory: boolean): void 42 43**适配指导** 44 45接口调用方需要申请ohos.permission.POWER_MANAGER权限。 46 47调用wakeup接口新增201错误码,示例如下: 48```ts 49import { power } from '@kit.BasicServicesKit'; 50 51try { 52 power.wakeup('wakeup_test'); 53} catch (err) { 54 if (err.code === 201) { 55 console.error('wakeup failed, permission verification failed'); 56 } else { 57 console.error('wakeup failed, err: ' + err); 58 } 59} 60``` 61 62调用suspend接口新增201错误码,示例如下: 63```ts 64import { power } from '@kit.BasicServicesKit'; 65 66try { 67 power.suspend(); 68} catch (err) { 69 if (err.code === 201) { 70 console.error('suspend failed, permission verification failed'); 71 } else { 72 console.error('suspend failed, err: ' + err); 73 } 74} 75``` 76 77调用setScreenOffTime接口新增201错误码,示例如下: 78```ts 79import { power } from '@kit.BasicServicesKit'; 80 81try { 82 power.setScreenOffTime(30000); 83} catch (err) { 84 if (err.code === 201) { 85 console.error('set screen off time failed, permission verification failed'); 86 } else { 87 console.error('set screen off time failed, err: ' + err); 88 } 89} 90``` 91 92调用hibernate接口新增201错误码,示例如下: 93```ts 94import { power } from '@kit.BasicServicesKit'; 95 96try { 97 power.hibernate(true); 98} catch (err) { 99 if (err.code === 201) { 100 console.error('hibernate failed, permission verification failed'); 101 } else { 102 console.error('hibernate failed, err: ' + err); 103 } 104} 105```