窗口变更说明

cl.window.1 setWindowPrivacyMode接口错误码返回值变更

访问级别

公开接口。

变更原因

setWindowPrivacyMode的API文档上注明接口调用需要ohos.permission.PRIVACY_WINDOW权限,但是在未添加该权限时,接口调用结果中没有正确返回错误码201。

变更影响

该变更为非兼容性变更。当应用使用setWindowPrivacyMode接口但未添加权限ohos.permission.PRIVACY_WINDOW时,将返回错误码201,需要开发者及时处理此结果。

起始 API Level

9

变更发生版本

从OpenHarmony SDK 4.1.6.5开始。

变更的接口/组件

变更之前,未配置权限ohos.permission.PRIVACY_WINDOW时调用setWindowPrivacyMode接口,不会返回权限校验失败的错误码,但是实际未设置成功。

变更之后,未配置权限ohos.permission.PRIVACY_WINDOW时调用setWindowPrivacyMode接口,会返回错误码权限校验失败的错误码201,表示设置失败。

适配指导

调用setWindowPrivacyMode接口时如果未添加权限ohos.permission.PRIVACY_WINDOW,可以在回调中获取到错误码201,并及时处理。

import { UIAbility }from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
    onWindowStageCreate(windowStage: window.WindowStage): void {
        console.log('onWindowStageCreate');
        let promise = windowStage.getMainWindow();
        promise.then((windowClass: window.Window)=>{
            windowClass.setWindowPrivacyMode(true, (err: BusinessError)=> {
                if (err.code) {
                    console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(err));
                    return;
                }
                console.info('Succeeded in setting the window to privacy mode.');
            });
        }).catch((err: BusinessError)=>{
            console.log("Failed to get main window. Cause:" + JSON.stringify(err));
        })
    }
};