harmony 鸿蒙@ohos.screen (屏幕)(系统接口)

  • 2025-06-12
  • 浏览 (3)

@ohos.screen (屏幕)(系统接口)

本模块提供管理屏幕的一些基础能力,包括获取屏幕对象,监听屏幕变化,创建和销毁虚拟屏幕等。

说明:

  • 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

  • 本模块接口为系统接口。

导入模块

import { screen } from '@kit.ArkUI';

screen.getAllScreens

getAllScreens(callback: AsyncCallback<Array<Screen>>): void

获取所有的屏幕,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback<Array<Screen>> 回调函数。返回当前获取的屏幕对象集合。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let screenClass: screen.Screen|null = null;
screen.getAllScreens((err: BusinessError, data: Array<screen.Screen>) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to get all screens. Code:${err.code},message is ${err.message}`);
    return;
  }
  console.info('Succeeded in getting all screens. Data:' + JSON.stringify(data));
  screenClass = data[0];
});

screen.getAllScreens

getAllScreens(): Promise&lt;Array&lt;Screen&gt;&gt;

获取所有的屏幕,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

返回值:

类型 说明
Promise&lt;Array&lt;Screen&gt;&gt; Promise对象。返回当前获取的屏幕对象集合。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let screenClass: screen.Screen|null = null;
let promise: Promise<Array<screen.Screen>> = screen.getAllScreens();
promise.then((data: Array<screen.Screen>) => {
  screenClass = data[0];
  console.log('Succeeded in getting all screens. Data:' + JSON.stringify(data));
}).catch((err: BusinessError) => {
  console.log('Failed to get all screens. Cause: ' + JSON.stringify(err));
});

screen.on(‘connect’|‘disconnect’|‘change’)

on(eventType: ‘connect’|‘disconnect’|‘change’, callback: Callback&lt;number&gt;): void

开启屏幕状态变化的监听。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
eventType string 监听事件。
-eventType为”connect”表示屏幕连接事件。
-eventType为”disconnect”表示断开屏幕连接事件。
-eventType为”change”表示屏幕状态改变事件。
callback Callback&lt;number&gt; 回调函数。返回屏幕的id,该参数为整数。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

let callback: Callback<number> = (data: number) => {
  console.info('Succeeded in registering the callback for screen changes. Data: ' + JSON.stringify(data))
};
screen.on('connect', callback);

screen.off(‘connect’|‘disconnect’|‘change’)

off(eventType: ‘connect’|‘disconnect’|‘change’, callback?: Callback&lt;number&gt;): void

关闭屏幕状态变化的监听。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
eventType string 监听事件。
-eventType为”connect”表示屏幕连接事件。
-eventType为”disconnect”表示断开屏幕连接事件。
-eventType为”change”表示屏幕状态改变事件。
callback Callback&lt;number&gt; 回调函数。返回屏幕的id,该参数为整数。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

let callback: Callback<number> = (data: number) => {
  console.info('Succeeded in unregistering the callback for screen changes. Data: ' + JSON.stringify(data))
};
screen.off('connect', callback);
screen.off('connect');

screen.makeExpand

makeExpand(options:Array&lt;ExpandOption&gt;, callback: AsyncCallback&lt;number&gt;): void

将屏幕设置为扩展模式,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
options Array&lt;ExpandOption&gt; 设置扩展屏幕的参数集合。
callback AsyncCallback&lt;number&gt; 回调函数。返回扩展屏幕的群组id,其中id为整数。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let groupId: number|null = null;
class ExpandOption {
  screenId: number = 0;
  startX: number = 0;
  startY: number = 0;
}
let mainScreenOption: ExpandOption = { screenId: 0, startX: 0, startY: 0 };
let otherScreenOption: ExpandOption = { screenId: 1, startX: 1080, startY: 0 };
let expandOptionArray : ExpandOption[] = [ mainScreenOption, otherScreenOption ];
screen.makeExpand(expandOptionArray, (err: BusinessError, data: number) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to expand the screen. Code:${err.code},message is ${err.message}`);
    return;
  }
  groupId = data;
  console.info('Succeeded in expanding the screen. Data: ' + JSON.stringify(data));
});

screen.makeExpand

makeExpand(options:Array&lt;ExpandOption&gt;): Promise&lt;number&gt;

将屏幕设置为扩展模式,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
options Array&lt;ExpandOption&gt; 设置扩展屏幕的参数集合。

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回扩展屏幕的群组id,其中id为整数。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

class ExpandOption {
  screenId: number = 0;
  startX: number = 0;
  startY: number = 0;
}
let mainScreenOption: ExpandOption = { screenId: 0, startX: 0, startY: 0 };
let otherScreenOption: ExpandOption = { screenId: 1, startX: 1080, startY: 0 };
let expandOptionArray : ExpandOption[] = [ mainScreenOption, otherScreenOption ];
screen.makeExpand(expandOptionArray).then((
  data: number) => {
  console.info('Succeeded in expanding the screen. Data: ' + JSON.stringify(data));
}).catch((err: BusinessError) => {
  console.error(`Failed to expand the screen. Code:${err.code},message is ${err.message}`);
});

screen.stopExpand10+

stopExpand(expandScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;void&gt;): void

停止屏幕的扩展模式,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
expandScreen Array&lt;number&gt; 扩展屏幕id集合,其中id为整数。 expandScreen数组大小不应超过1000。
callback AsyncCallback&lt;void&gt; 回调函数。当停止屏幕扩展模式成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let expandScreenIds: Array<number> = [1, 2, 3];
screen.stopExpand(expandScreenIds, (err: BusinessError) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to stop expand screens. Code:${err.code},message is ${err.message}`);
    return;
  }
  console.info('Succeeded in stopping expand screens.');
});

screen.stopExpand10+

stopExpand(expandScreen:Array&lt;number&gt;): Promise&lt;void&gt;

停止屏幕的扩展模式,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
expandScreen Array&lt;number&gt; 扩展屏幕id集合,其中id为整数。expandScreen数组大小不应超过1000。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let expandScreenIds: Array<number> = [1, 2, 3];
screen.stopExpand(expandScreenIds).then(() => {
  console.info('Succeeded in stopping expand screens.');
}).catch((err: BusinessError) => {
  console.error(`Failed to stop expand screens. Code:${err.code},message is ${err.message}`);
});

screen.makeMirror

makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;number&gt;): void

将屏幕设置为镜像模式,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
mainScreen number 主屏幕id,该参数仅支持整数输入。
mirrorScreen Array&lt;number&gt; 镜像屏幕id集合,其中id应为整数。
callback AsyncCallback&lt;number&gt; 回调函数。返回镜像屏幕的群组id,其中id为整数。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let mainScreenId: number = 0;
let mirrorScreenIds: Array<number> = [1, 2, 3];
screen.makeMirror(mainScreenId, mirrorScreenIds, (err: BusinessError, data: number) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to set screen mirroring. Code:${err.code},message is ${err.message}`);
    return;
  }
  console.info('Succeeded in setting screen mirroring. Data: ' + JSON.stringify(data));
});

screen.makeMirror

makeMirror(mainScreen:number, mirrorScreen:Array&lt;number&gt;): Promise&lt;number&gt;

将屏幕设置为镜像模式,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
mainScreen number 主屏幕id,该参数仅支持整数输入。
mirrorScreen Array&lt;number&gt; 镜像屏幕id集合。其中id应为整数。

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回镜像屏幕的群组id,其中id为整数。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let mainScreenId: number = 0;
let mirrorScreenIds: Array<number> = [1, 2, 3];
screen.makeMirror(mainScreenId, mirrorScreenIds).then((data: number) => {
  console.info('Succeeded in setting screen mirroring. Data: ' + JSON.stringify(data));
}).catch((err: BusinessError) => {
  console.error(`Failed to set screen mirroring. Code:${err.code},message is ${err.message}`);
});

screen.stopMirror10+

stopMirror(mirrorScreen:Array&lt;number&gt;, callback: AsyncCallback&lt;void&gt;): void

停止屏幕的镜像模式,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
mirrorScreen Array&lt;number&gt; 镜像屏幕id集合,其中id应为整数。 mirrorScreen数组大小不应超过1000。
callback AsyncCallback&lt;void&gt; 回调函数。当停止屏幕镜像模式成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let mirrorScreenIds: Array<number> = [1, 2, 3];
screen.stopMirror(mirrorScreenIds, (err: BusinessError) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to stop mirror screens. Code:${err.code},message is ${err.message}`);
    return;
  }
  console.info('Succeeded in stopping mirror screens.');
});

screen.stopMirror10+

stopMirror(mirrorScreen:Array&lt;number&gt;): Promise&lt;void&gt;

停止屏幕的镜像模式,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
mirrorScreen Array&lt;number&gt; 镜像屏幕id集合,其中id应为整数。mirrorScreen数组大小不应超过1000。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let mirrorScreenIds: Array<number> = [1, 2, 3];
screen.stopMirror(mirrorScreenIds).then(() => {
  console.info('Succeeded in stopping mirror screens.');
}).catch((err: BusinessError) => {
  console.error(`Failed to stop mirror screens.Code:${err.code},message is ${err.message}`);
});

screen.makeUnique16+

makeUnique(uniqueScreen: Array&lt;number&gt;): Promise&lt;Array&lt;number&gt;&gt;

将屏幕设置为异源模式,使用Promise异步回调。

系统能力: SystemCapability.Window.SessionManager

参数:

参数名 类型 必填 说明
uniqueScreen Array&lt;number&gt; 异源屏幕id集合。其中id应为大于0的整数,否则返回401错误码。

返回值:

类型 说明
Promise&lt;Array&lt;number&gt;&gt; Promise对象。返回异源屏幕的displayId集合,其中id为大于0的整数。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
801 Capability not supported. Failed to call the API due to limited device capabilities.
1400001 Invalid display or screen.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let uniqueScreenIds: Array<number> = [1001, 1002, 1003];
screen.makeUnique(uniqueScreenIds).then((data: Array<number>) => {
  console.info('Succeeded in making unique screens.');
}).catch((err: BusinessError) => {
  console.error(`Failed to make unique screens. Code:${err.code},message is ${err.message}`);
});

screen.createVirtualScreen

createVirtualScreen(options:VirtualScreenOption, callback: AsyncCallback&lt;Screen&gt;): void

创建虚拟屏幕,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

需要权限:ohos.permission.CAPTURE_SCREEN

参数:

参数名 类型 必填 说明
options VirtualScreenOption 用于创建虚拟屏幕的参数。
callback AsyncCallback&lt;Screen&gt; 回调函数,返回创建的虚拟屏幕对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
201 Permission verification failed.
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let screenClass: screen.Screen|null = null;
class VirtualScreenOption {
  name : string = '';
  width : number =  0;
  height : number = 0;
  density : number = 0;
  surfaceId : string = '';
}

let option : VirtualScreenOption = { 
  name: 'screen01',
  width: 1080,
  height: 2340,
  density: 2,
  surfaceId: ''
};
screen.createVirtualScreen(option, (err: BusinessError, data: screen.Screen) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to create the virtual screen. Code:${err.code},message is ${err.message}`);
    return;
  }
  screenClass = data;
  console.info('Succeeded in creating the virtual screen. Data: ' + JSON.stringify(data));
});

screen.createVirtualScreen

createVirtualScreen(options:VirtualScreenOption): Promise&lt;Screen&gt;

创建虚拟屏幕,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

需要权限:ohos.permission.CAPTURE_SCREEN

参数:

参数名 类型 必填 说明
options VirtualScreenOption 用于创建虚拟屏幕的参数。

返回值:

类型 说明
Promise&lt;Screen&gt; Promise对象。返回创建的虚拟屏幕对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
201 Permission verification failed.
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let screenClass: screen.Screen|null = null;
class VirtualScreenOption {
  name : string = '';
  width : number =  0;
  height : number = 0;
  density : number = 0;
  surfaceId : string = '';
}

let option : VirtualScreenOption = { 
  name: 'screen01',
  width: 1080,
  height: 2340,
  density: 2,
  surfaceId: ''
};

screen.createVirtualScreen(option).then((data: screen.Screen) => {
  screenClass = data;
  console.info('Succeeded in creating the virtual screen. Data: ' + JSON.stringify(data));
}).catch((err: BusinessError) => {
  console.error(`Failed to create the virtual screen. Code:${err.code},message is ${err.message}`);
});

screen.destroyVirtualScreen

destroyVirtualScreen(screenId:number, callback: AsyncCallback&lt;void&gt;): void

销毁虚拟屏幕,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
screenId number 屏幕的id,该参数仅支持整数输入。
callback AsyncCallback&lt;void&gt; 回调函数。当销毁虚拟屏幕成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400002 Unauthorized operation.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let screenId: number = 1;
screen.destroyVirtualScreen(screenId, (err: BusinessError) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to destroy the virtual screen. Code:${err.code},message is ${err.message}`);
    return;
  }
  console.info('Succeeded in destroying the virtual screen.');
});

screen.destroyVirtualScreen

destroyVirtualScreen(screenId:number): Promise&lt;void&gt;

销毁虚拟屏幕,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
screenId number 屏幕的id,该参数仅支持整数输入。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400002 Unauthorized operation.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let screenId: number = 1;
screen.destroyVirtualScreen(screenId).then(() => {
  console.info('Succeeded in destroying the virtual screen.');
}).catch((err: BusinessError) => {
  console.error(`Failed to destroy the virtual screen.Code:${err.code},message is ${err.message}`);
});

screen.setVirtualScreenSurface

setVirtualScreenSurface(screenId:number, surfaceId: string, callback: AsyncCallback&lt;void&gt;): void

设置虚拟屏幕的surface,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

需要权限:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。

参数:

参数名 类型 必填 说明
screenId number 屏幕的id,该参数仅支持整数输入。
surfaceId string 代表虚拟屏幕的surface标识符,surfaceId值可自行定义。
callback AsyncCallback&lt;void&gt; 回调函数。当设置虚拟屏幕surface成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
201 Permission verification failed.
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let screenId: number = 1;
let surfaceId: string = '2048';
screen.setVirtualScreenSurface(screenId, surfaceId, (err: BusinessError) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to set the surface for the virtual screen. Code:${err.code},message is ${err.message}`);
    return;
  }
  console.info('Succeeded in setting the surface for the virtual screen.');
});

screen.setVirtualScreenSurface

setVirtualScreenSurface(screenId:number, surfaceId: string): Promise&lt;void&gt;

设置虚拟屏幕的surface,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

需要权限:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。

参数:

参数名 类型 必填 说明
screenId number 屏幕的id,该参数仅支持整数输入。
surfaceId string 代表虚拟屏幕的surface标识符,surfaceId值可自行定义。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
201 Permission verification failed.
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let screenId: number = 1;
let surfaceId: string = '2048';
screen.setVirtualScreenSurface(screenId, surfaceId).then(() => {
  console.info('Succeeded in setting the surface for the virtual screen.');
}).catch((err: BusinessError) => {
  console.error(`Failed to set the surface for the virtual screen. Code:${err.code},message is ${err.message}`);
});

screen.setScreenPrivacyMaskImage19+

setScreenPrivacyMaskImage(screenId:number, image?: image.PixelMap): Promise&lt;void&gt;

设置屏幕的隐私蒙版图片,使用Promise异步回调。

系统能力: SystemCapability.Window.SessionManager

参数:

参数名 类型 必填 说明
screenId number 屏幕的id,该参数仅支持正整数输入。
image image.PixelMap 屏幕的隐私蒙版图片,不传入则使用默认隐私蒙版图片。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
801 Capability not supported. Failed to call the API due to limited device capabilities.
1400001 Invalid display or screen.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';
import { image } from '@kit.ImageKit';

const color: ArrayBuffer = new ArrayBuffer(96); // 96为需要创建的像素buffer大小,取值为:height * width *4
let opts: image.InitializationOptions = { editable: true, pixelFormat: image.PixelMapFormat.RGBA_8888, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts).then((pixelMap: image.PixelMap) => {
  console.info('Succeeded in creating pixelmap.');
  let screenId: number = 1;
  screen.setScreenPrivacyMaskImage(screenId, pixelMap).then(() => {
    console.info('Succeeded in setting the privacy mask image for the screen.');
  }).catch((err: BusinessError) => {
    console.error(`Failed to set the privacy mask image for the screen. Code:${err.code},message is ${err.message}`);
  });
}).catch((error: BusinessError) => {
  console.error(`Failed to create pixelmap. code is ${error.code}, message is ${error.message}`);
})

screen.isScreenRotationLocked

isScreenRotationLocked(): Promise&lt;boolean&gt;

查询当前自动转屏是否锁定,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

返回值:

类型 说明
Promise&lt;boolean&gt; Promise对象。返回true表示当前自动转屏处于锁定状态;返回false表示当前自动转屏不处于锁定状态。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

screen.isScreenRotationLocked().then((isLocked: boolean) => {
  console.info('Succeeded in getting the screen rotation lock status. isLocked:' + JSON.stringify(isLocked));
}).catch((err: BusinessError) => {
  console.error(`Failed to get the screen rotation lock status. Code:${err.code},message is ${err.message}`);
});

screen.isScreenRotationLocked

isScreenRotationLocked(callback: AsyncCallback&lt;boolean&gt;): void

查询当前自动转屏是否锁定,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
callback AsyncCallback&lt;boolean&gt; 回调函数。返回true表示当前自动转屏处于锁定状态;返回false表示当前自动转屏不处于锁定状态。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

screen.isScreenRotationLocked((err: BusinessError, isLocked: boolean) => {
const errCode: number = err.code;
if (errCode) {
  console.error(`Failed to get the screen rotation lock status. Code:${err.code},message is ${err.message}`);
  return;
}
console.info('Succeeded in getting the screen rotation lock status. isLocked:' + JSON.stringify(isLocked));
});

screen.setScreenRotationLocked

setScreenRotationLocked(isLocked: boolean): Promise&lt;void&gt;

设置自动转屏开关是否锁定,使用Promise异步回调,不适用于2in1设备。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
isLocked boolean 自动转屏开关是否锁定。true为锁定,false为未锁定。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let isLocked: boolean = false;
screen.setScreenRotationLocked(isLocked).then(() => {
  console.info('Succeeded in unlocking auto rotate');
}).catch((err: BusinessError) => {
  console.error(`Failed to unlock auto rotate. Code:${err.code},message is ${err.message}`);
});

screen.setScreenRotationLocked

setScreenRotationLocked(isLocked: boolean, callback: AsyncCallback&lt;void&gt;): void

设置自动转屏开关是否锁定,使用callback异步回调,不适用于2in1设备。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
isLocked boolean 自动转屏开关是否锁定。true为锁定,false为未锁定。
callback AsyncCallback&lt;void&gt; 回调函数。当设置自动转屏是否锁定成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let isLocked: boolean = false;
screen.setScreenRotationLocked(isLocked, (err: BusinessError) => {
  const errCode: number = err.code;
  if (errCode) {
    console.error(`Failed to unlock auto rotate. Code:${err.code},message is ${err.message}`);
    return;
  }
  console.info('Succeeded in unlocking auto rotate.');
});

screen.setMultiScreenMode13+

setMultiScreenMode(primaryScreenId: number, secondaryScreenId: number, secondaryScreenMode: MultiScreenMode): Promise&lt;void&gt;

设置扩展屏幕的显示模式(镜像/扩展),使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
primaryScreenId number 主屏的id,该参数应为正整数。
secondaryScreenId number 扩展屏幕的id,该参数应为正整数。
secondaryScreenMode MultiScreenMode 扩展屏幕的显示模式。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed, non-system application uses system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let primaryScreenId: number = 0;
let secondaryScreenId: number = 12;
let screenMode: screen.MultiScreenMode = screen.MultiScreenMode.SCREEN_MIRROR;
screen.setMultiScreenMode(primaryScreenId, secondaryScreenId, screenMode).then(() => {
  console.info('Succeeded in setting multi screen mode. Data: ');
}).catch((err: BusinessError) => {
  console.error(`Failed to set multi screen mode. Code:${err.code},message is ${err.message}`);
});

screen.setMultiScreenRelativePosition13+

setMultiScreenRelativePosition(mainScreenOptions: MultiScreenPositionOptions, secondaryScreenOptions: MultiScreenPositionOptions): Promise&lt;void&gt;

仅在扩展模式下,设置主屏和扩展屏幕的位置信息,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
mainScreenOptions MultiScreenPositionOptions 主屏的位置信息。
secondaryScreenOptions MultiScreenPositionOptions 扩展屏幕的位置信息。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed, non-system application uses system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let mainScreenOptions: screen.MultiScreenPositionOptions = {
  id : 0,
  startX : 0,
  startY : 0
};

let secondaryScreenOptions: screen.MultiScreenPositionOptions = {
  id : 12,
  startX : 1000,
  startY : 1000
};

screen.setMultiScreenRelativePosition(mainScreenOptions, secondaryScreenOptions).then(() => {
  console.info('Succeeded in setting multi screen relative position. Data: ');
}).catch((err: BusinessError) => {
  console.error(`Failed to set multi screen relative position. Code:${err.code},message is ${err.message}`);
});

ExpandOption

扩展屏幕的参数。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称 类型 可读 可写 说明
screenId number 屏幕的id,该参数应为整数。
startX number 屏幕的起始X轴坐标,该参数应为整数。
startY number 屏幕的起始Y轴坐标,该参数应为整数。

MultiScreenMode13+

屏幕模式枚举。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数 说明
SCREEN_MIRROR 0 表示屏幕为镜像模式。
SCREEN_EXTAND 1 表示屏幕为扩展模式。

MultiScreenPositionOptions13+

屏幕位置信息。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名 类型 可读 可写 说明
id number 屏幕的id,该参数应为正整数,非正整数会作为非法参数报错。
startX number 屏幕的起始X轴坐标。以两块屏幕外接矩形的左上顶点为原点,向右为正方向。该参数应为正整数,非正整数会作为非法参数报错。
startY number 屏幕的起始Y轴坐标。以两块屏幕外接矩形的左上顶点为原点,向下为正方向。该参数应为正整数,非正整数会作为非法参数报错。

VirtualScreenOption

创建虚拟屏幕的参数。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称 类型 可读 可写 说明
name string 指定虚拟屏幕的名称。
width number 指定虚拟屏幕的宽度,单位为px,该参数应为整数。
height number 指定虚拟屏幕的高度,单位为px,该参数应为整数。
density number 指定虚拟屏幕的密度,单位为px,该参数为浮点数。
surfaceId string 指定虚拟屏幕的surfaceId。

screen.makeMirrorWithRegion19+

makeMirrorWithRegion(mainScreen:number, mirrorScreen:Array&lt;number&gt;, mainScreenRegion:Rect): Promise&lt;number&gt;

将屏幕的某一矩形区域设置为镜像模式,使用Promise异步回调。调用该接口后,不建议再进行屏幕的旋转/折叠,否则可能导致镜像内容异常。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数:

参数名 类型 必填 说明
mainScreen number 主屏幕id,该参数仅支持正整数输入。
mirrorScreen Array&lt;number&gt; 镜像屏幕id集合。其中id应为正整数。
mainScreenRegion Rect 主屏创建镜像的矩形区域。

返回值:

类型 说明
Promise&lt;number&gt; Promise对象。返回镜像屏幕的群组id,其中id为正整数。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
1400001 Invalid display or screen.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let mainScreenId: number = 0;
let mirrorScreenIds: Array<number> = [1, 2, 3];
let mainScreenRegion: screen.Rect = {
  left : 0,
  top : 0,
  width : 1920,
  height : 1080
};
screen.makeMirrorWithRegion(mainScreenId, mirrorScreenIds, mainScreenRegion).then((data: number) => {
  console.info(`Succeeded in setting screen mirroring. Data: ${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
  console.error(`Failed to set screen area mirroring. Code:${err.code},message is ${err.message}`);
});

Screen

屏幕实例。

下列API示例中都需先使用getAllScreens()createVirtualScreen()中的任一方法获取到Screen实例,再通过此实例调用对应方法。

属性

名称 类型 只读 可选 说明
id number 屏幕的id,该参数为整数。
系统能力: SystemCapability.WindowManager.WindowManager.Core
parent number 屏幕所属群组的id,该参数为整数。
系统能力: SystemCapability.WindowManager.WindowManager.Core
supportedModeInfo Array&lt;ScreenModeInfo&gt; 屏幕支持的模式集合。
系统能力: SystemCapability.WindowManager.WindowManager.Core
activeModeIndex number 当前屏幕所处模式索引。模式索引的当前值和值的范围,会根据屏幕当前分辨率、刷新率和设备硬件差异产生变化。该参数为整数。
系统能力: SystemCapability.WindowManager.WindowManager.Core
orientation Orientation 屏幕方向。
系统能力: SystemCapability.WindowManager.WindowManager.Core
sourceMode10+ ScreenSourceMode 屏幕来源模式。
系统能力: SystemCapability.WindowManager.WindowManager.Core
serialNumber15+ string 扩展屏幕的序列号,当前仅2in1设备支持此属性。其他设备暂不支持使用此属性。
系统能力: SystemCapability.WindowManager.WindowManager

setOrientation

setOrientation(orientation: Orientation, callback: AsyncCallback&lt;void&gt;): void

设置屏幕方向,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名 类型 必填 说明
orientation Orientation 屏幕方向。orientation值必须来自Orientation枚举方向。
callback AsyncCallback&lt;void&gt; 回调函数。当设置屏幕方向成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

class VirtualScreenOption {
  name : string = '';
  width : number =  0;
  height : number = 0;
  density : number = 0;
  surfaceId : string = '';
}

let option : VirtualScreenOption = {
  name: 'screen01',
  width: 1080,
  height: 2340,
  density: 2,
  surfaceId: ''
};

screen.createVirtualScreen(option).then((data: screen.Screen) => {
  let screenClass: screen.Screen = data;
  console.info('Succeeded in creating the virtual screen. Data: ' + JSON.stringify(data));
  screenClass.setOrientation(screen.Orientation.VERTICAL, (err: BusinessError) => {
    const errCode: number = err.code;
    if (errCode) {
      console.error(`Failed to set the vertical orientation. Code:${err.code},message is ${err.message}`);
      return;
    }
    console.info('Succeeded in setting the vertical orientation.');
  });
}).catch((err: BusinessError) => {
  console.error(`Failed to create the virtual screen. Code:${err.code},message is ${err.message}`);
});

setOrientation

setOrientation(orientation: Orientation): Promise&lt;void&gt;

设置屏幕方向,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名 类型 必填 说明
orientation Orientation 屏幕方向。orientation值必须来自Orientation枚举方向。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

class VirtualScreenOption {
  name : string = '';
  width : number =  0;
  height : number = 0;
  density : number = 0;
  surfaceId : string = '';
}

let option : VirtualScreenOption = {
  name: 'screen01',
  width: 1080,
  height: 2340,
  density: 2,
  surfaceId: ''
};

screen.createVirtualScreen(option).then((data: screen.Screen) => {
  let screenClass: screen.Screen = data;
  console.info('Succeeded in creating the virtual screen. Data: ' + JSON.stringify(data));
  let promise: Promise<void> = screenClass.setOrientation(screen.Orientation.VERTICAL);
  promise.then(() => {
    console.info('Succeeded in setting the vertical orientation.');
  }).catch((err: BusinessError) => {
    console.error(`Failed to set the vertical orientation. Code:${err.code},message is ${err.message}`);
  });
}).catch((err: BusinessError) => {
  console.error(`Failed to create the virtual screen. Code:${err.code},message is ${err.message}`);
});

setScreenActiveMode

setScreenActiveMode(modeIndex: number, callback: AsyncCallback&lt;void&gt;): void

设置屏幕当前显示模式,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名 类型 必填 说明
modeIndex number 模式索引。模式索引的当前值和值的范围,会根据屏幕当前分辨率、刷新率和设备硬件差异产生变化,该参数仅支持整数输入。
callback AsyncCallback&lt;void&gt; 回调函数。当设置屏幕当前显示模式成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

class VirtualScreenOption {
  name : string = '';
  width : number =  0;
  height : number = 0;
  density : number = 0;
  surfaceId : string = '';
}

let option : VirtualScreenOption = {
  name: 'screen01',
  width: 1080,
  height: 2340,
  density: 2,
  surfaceId: ''
};

screen.createVirtualScreen(option).then((data: screen.Screen) => {
  let screenClass: screen.Screen = data;
  console.info('Succeeded in creating the virtual screen. Data: ' + JSON.stringify(data));
  let modeIndex: number = 0;
  screenClass.setScreenActiveMode(modeIndex, (err: BusinessError) => {
    const errCode: number = err.code;
    if (errCode) {
      console.error(`Failed to set screen active mode 0. Code:${err.code},message is ${err.message}`);
      return;
    }
    console.info('Succeeded in setting the vertical orientation.');
  });
}).catch((err: BusinessError) => {
  console.error(`Failed to create the virtual screen. Code:${err.code},message is ${err.message}`);
});

setScreenActiveMode

setScreenActiveMode(modeIndex: number): Promise&lt;void&gt;

设置屏幕当前显示模式,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名 类型 必填 说明
modeIndex number 模式索引。模式索引的当前值和值的范围,会根据屏幕当前分辨率、刷新率和设备硬件差异产生变化,该参数仅支持整数输入。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

class VirtualScreenOption {
  name : string = '';
  width : number =  0;
  height : number = 0;
  density : number = 0;
  surfaceId : string = '';
}

let option : VirtualScreenOption = {
  name: 'screen01',
  width: 1080,
  height: 2340,
  density: 2,
  surfaceId: ''
};

screen.createVirtualScreen(option).then((data: screen.Screen) => {
  let screenClass: screen.Screen = data;
  console.info('Succeeded in creating the virtual screen. Data: ' + JSON.stringify(data));
  let modeIndex: number = 0;
  let promise: Promise<void> = screenClass.setScreenActiveMode(modeIndex);
  promise.then(() => {
    console.info('Succeeded in setting screen active mode 0.');
  }).catch((err: BusinessError) => {
    console.error(`Failed to set screen active mode 0.Code:${err.code},message is ${err.message}`);
  });
}).catch((err: BusinessError) => {
  console.error(`Failed to create the virtual screen. Code:${err.code},message is ${err.message}`);
});

setDensityDpi

setDensityDpi(densityDpi: number, callback: AsyncCallback&lt;void&gt;): void;

设置屏幕的像素密度,使用callback异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名 类型 必填 说明
densityDpi number 像素密度。支持的输入范围为[80, 640],该参数仅支持整数输入。
callback AsyncCallback&lt;void&gt; 回调函数。当设置屏幕的像素密度成功,err为undefined,否则为错误对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let densityDpi: number = 320;
class VirtualScreenOption {
  name : string = '';
  width : number =  0;
  height : number = 0;
  density : number = 0;
  surfaceId : string = '';
}

let option : VirtualScreenOption = {
  name: 'screen01',
  width: 1080,
  height: 2340,
  density: 2,
  surfaceId: ''
};

screen.createVirtualScreen(option).then((data: screen.Screen) => {
  let screenClass: screen.Screen = data;
  console.info('Succeeded in creating the virtual screen. Data: ' + JSON.stringify(data));
  screenClass.setDensityDpi(densityDpi, (err: BusinessError) => {
    const errCode: number = err.code;
    if (errCode) {
      console.error(`Failed to set the pixel density of the screen to 320. Code:${err.code},message is ${err.message}`);
      return;
    }
    console.info('Succeeded in setting the vertical orientation.');
  });
}).catch((err: BusinessError) => {
  console.error(`Failed to create the virtual screen. Code:${err.code},message is ${err.message}`);
});

setDensityDpi

setDensityDpi(densityDpi: number): Promise&lt;void&gt;

设置屏幕的像素密度,使用Promise异步回调。

系统能力: SystemCapability.WindowManager.WindowManager.Core

参数名 类型 必填 说明
densityDpi number 像素密度。支持的输入范围为[80, 640],该参数仅支持整数输入。

返回值:

类型 说明
Promise&lt;void&gt; 无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见通用错误码屏幕错误码

错误码ID 错误信息
202 Permission verification failed. A non-system application calls a system API.
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
1400003 This display manager service works abnormally.

示例:

import { BusinessError } from '@kit.BasicServicesKit';

let densityDpi: number = 320;
class VirtualScreenOption {
  name : string = '';
  width : number =  0;
  height : number = 0;
  density : number = 0;
  surfaceId : string = '';
}

let option : VirtualScreenOption = {
  name: 'screen01',
  width: 1080,
  height: 2340,
  density: 2,
  surfaceId: ''
};

screen.createVirtualScreen(option).then((data: screen.Screen) => {
  let screenClass: screen.Screen = data;
  let promise: Promise<void> = screenClass.setDensityDpi(densityDpi);
  promise.then(() => {
    console.info('Succeeded in setting the pixel density of the screen to 320.');
  }).catch((err: BusinessError) => {
    console.error(`Failed to set the pixel density of the screen to 320. Code:${err.code},message is ${err.message}`);
  });
}).catch((err: BusinessError) => {
  console.error(`Failed to create the virtual screen. Code:${err.code},message is ${err.message}`);
});

Orientation

屏幕方向枚举。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称 说明
UNSPECIFIED 0 表示未指定屏幕方向,由系统指定。
VERTICAL 1 表示指定屏幕为垂直方向。
HORIZONTAL 2 表示指定屏幕为水平方向。
REVERSE_VERTICAL 3 表示指定屏幕为反向垂直方向。
REVERSE_HORIZONTAL 4 表示指定屏幕为反向水平方向。

ScreenSourceMode10+

屏幕显示内容来源模式枚举。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称 说明
SCREEN_MAIN 0 表示屏幕为默认主屏。
SCREEN_MIRROR 1 表示屏幕内容来自镜像。
SCREEN_EXTEND 2 表示屏幕内容来自扩展。
SCREEN_ALONE 3 表示屏幕为未指定来源。

ScreenModeInfo

屏幕显示模式信息。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称 类型 可读 可写 说明
id number 模式id,所支持的模式由具体设备分辨率和刷新率决定,该参数为整数。
width number 屏幕的宽度,单位为px,该参数为整数。
height number 屏幕的高度,单位为px,该参数为整数。
refreshRate number 屏幕的刷新率,单位为hz,该参数为整数。

Rect19+

矩形信息。

系统能力: SystemCapability.WindowManager.WindowManager.Core

名称 类型 可读 可写 说明
left number 矩形左上角顶点的X轴坐标,单位为px,该参数应为整数。
top number 矩形左上角顶点的Y轴坐标,单位为px,该参数应为整数。
width number 矩形的宽度,单位为px,该参数应为整数。
height number 矩形的高度,单位为px,该参数应为整数。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙ArkUI(方舟UI框架)

harmony 鸿蒙ARKUI_TextPickerCascadeRangeContent

harmony 鸿蒙ARKUI_TextPickerRangeContent

harmony 鸿蒙ArkUI_AnimateCompleteCallback

harmony 鸿蒙ArkUI_AttributeItem

harmony 鸿蒙ArkUI_ColorStop

harmony 鸿蒙ArkUI_ContextCallback

harmony 鸿蒙ArkUI_EventModule

harmony 鸿蒙ArkUI_ExpectedFrameRateRange

harmony 鸿蒙ArkUI_IntOffset

0  赞