# 主题框架changeLog ## cl.theme.1 API9接口支持异常处理 下列模块内部接口使用业务逻辑返回值表示错误信息,不符合OpenHarmony接口错误码规范。在API9进行变更。 - 壁纸管理服务:@ohos.wallpaper.d.ts - 锁屏管理服务:@ohos.screenLock.d.ts 以上模块中的接口变更为: 同步接口:通过抛出异常的方式返回错误信息。 异步接口:参数检查错误同步抛出,业务逻辑错误通过AsyncCallback或Promise的error对象抛出。 **变更影响** 基于此前版本开发的应用,需适配接口的错误信息返回方式,否则会影响原有业务逻辑。 **关键接口/组件变更** 以下标记为壁纸管理服务接口废除: - getColors(wallpaperType: WallpaperType, callback: AsyncCallback>): void; - getColors(wallpaperType: WallpaperType): Promise>; - getId(wallpaperType: WallpaperType, callback: AsyncCallback): void; - getId(wallpaperType: WallpaperType): Promise; - getMinHeight(callback: AsyncCallback): void; - getMinHeight(): Promise; - getMinWidth(callback: AsyncCallback): void; - getMinWidth(): Promise; - isChangePermitted(callback: AsyncCallback): void; - isChangePermitted(): Promise; - isOperationAllowed(callback: AsyncCallback): void; - isOperationAllowed(): Promise; - reset(wallpaperType: WallpaperType, callback: AsyncCallback): void; - reset(wallpaperType: WallpaperType): Promise; - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - setWallpaper(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; - getFile(wallpaperType: WallpaperType, callback: AsyncCallback): void; - getFile(wallpaperType: WallpaperType): Promise; - getPixelMap(wallpaperType: WallpaperType, callback: AsyncCallback): void; - getPixelMap(wallpaperType: WallpaperType): Promise; 壁纸管理服务替代接口如下: - getColorsSync(wallpaperType: WallpaperType): Array; - getIdSync(wallpaperType: WallpaperType): number; - getMinHeightSync(): number; - getMinWidthSync(): number; - isChangeAllowed(): boolean; - isUserChangeAllowed(): boolean; - restore(wallpaperType: WallpaperType, callback: AsyncCallback): void; - restore(wallpaperType: WallpaperType): Promise; - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType, callback: AsyncCallback): void; - setImage(source: string | image.PixelMap, wallpaperType: WallpaperType): Promise; - getFileSync(wallpaperType: WallpaperType): number; - getImage(wallpaperType: WallpaperType, callback: AsyncCallback): void; - getImage(wallpaperType: WallpaperType): Promise; 以下标记为壁纸管理服务接口变更: - on(type: 'colorChange', callback: (colors: Array, wallpaperType: WallpaperType) => void): void - off(type: 'colorChange', callback?: (colors: Array, wallpaperType: WallpaperType) => void): void 以下标记为锁屏管理服务接口废除: - isScreenLocked(callback: AsyncCallback): void; - isScreenLocked(): Promise; - isSecureMode(callback: AsyncCallback): void; - isSecureMode(): Promise; - unlockScreen(callback: AsyncCallback): void; - unlockScreen(): Promise; 锁屏管理服务替代接口如下: - isLocked(): boolean; - isSecure(): boolean; - unlock(callback: AsyncCallback): void; - unlock():Promise; 以下标记为锁屏管理服务接口删除: - lockScreen(callback: AsyncCallback): void; - lockScreen(): Promise; 以下标记为锁屏管理服务接口新增: - lock(callback: AsyncCallback): void; - lock():Promise; 以下标记为锁屏管理服务接口变更: - onSystemEvent(callback: Callback): boolean; - sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback): void; - sendScreenLockEvent(event: String, parameter: number): Promise; **壁纸管理服务适配指导** 异步接口以getImage为例,示例代码如下: ```ts import pointer from '@ohos.wallpaper'; try { wallpaper.getImage(wallpaper.WallpaperType.WALLPAPER_SYSTEM).then((data) => { console.log(`success to getImage: ${JSON.stringify(data)}`); }).catch((error) => { console.error(`failed to getImage because: ${JSON.stringify(error)}`); }); } catch (err) { console.error(`failed to getImage because: ${JSON.stringify(err)}`); } ``` 同步接口以getFileSync为例,示例代码如下: ```ts import pointer from '@ohos.wallpaper'; try { let file = wallpaper.getFileSync(wallpaper.WallpaperType.WALLPAPER_SYSTEM); } catch (err) { console.error(`failed to getFileSync because: ${err.message}`); } ``` **锁屏管理服务适配指导** 异步接口以lock为例,示例代码如下: ```ts import screenLock from '@ohos.screenlock'; try { screenLock.lock((err, data) => { if (err) { console.error(`Failed to lock the screen, because: ${err.message}`); return; } console.info(`lock the screen successfully. result: ${data}`); }); } catch (err) { console.error(`Failed to lock the screen, because: ${err.message}`); } ``` 同步接口以onSystemEvent为例,示例代码如下: ```ts import screenLock from '@ohos.screenlock'; try { let isSuccess = screenLock.onSystemEvent((event) => { console.log(`Register the system event which related to screenlock successfully. eventType: ${event.eventType}`) }); } catch (err) { console.error(`Failed to register the system event which related to screenlock, because: ${err.message}`) } ```