W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
屏幕屬性提供管理顯示設(shè)備的一些基礎(chǔ)能力,包括獲取默認(rèn)顯示設(shè)備的信息,獲取所有顯示設(shè)備的信息以及監(jiān)聽顯示設(shè)備的插拔行為。
本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
顯示設(shè)備的狀態(tài)枚舉。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
名稱 | 值 | 說明 |
---|---|---|
STATE_UNKNOWN | 0 | 表示顯示設(shè)備狀態(tài)未知。 |
STATE_OFF | 1 | 表示顯示設(shè)備狀態(tài)為關(guān)閉。 |
STATE_ON | 2 | 表示顯示設(shè)備狀態(tài)為開啟。 |
STATE_DOZE | 3 | 表示顯示設(shè)備為低電耗模式。 |
STATE_DOZE_SUSPEND | 4 | 表示顯示設(shè)備為睡眠模式,CPU為掛起狀態(tài)。 |
STATE_VR | 5 | 表示顯示設(shè)備為VR模式。 |
STATE_ON_SUSPEND | 6 | 表示顯示設(shè)備為開啟狀態(tài),CPU為掛起狀態(tài)。 |
矩形區(qū)域。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
left | number | 是 | 是 | 矩形區(qū)域的左邊界,單位為像素。 |
top | number | 是 | 是 | 矩形區(qū)域的上邊界,單位為像素。 |
width | number | 是 | 是 | 矩形區(qū)域的寬度,單位為像素。 |
height | number | 是 | 是 | 矩形區(qū)域的高度,單位為像素。 |
瀑布屏曲面部分顯示區(qū)域。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
挖孔屏、劉海屏、瀑布屏等不可用屏幕區(qū)域信息。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
boundingRects | Array<Rect> | 是 | 否 | 挖孔、劉海等區(qū)域的邊界矩形。 |
waterfallDisplayAreaRects | 是 | 否 | 瀑布屏曲面部分顯示區(qū)域。 |
getDefaultDisplaySync(): Display
獲取當(dāng)前默認(rèn)的display對象。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
返回值:
類型 | 說明 |
---|---|
返回默認(rèn)的display對象。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見屏幕錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
1400001 | Invalid display or screen. |
示例:
- let displayClass = null;
- try {
- displayClass = display.getDefaultDisplaySync();
- } catch (exception) {
- console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception));
- }
getAllDisplays(callback: AsyncCallback<Array<Display>>): void
獲取當(dāng)前所有的display對象,使用callback異步回調(diào)。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<Array<Display>> | 是 | 回調(diào)函數(shù)。返回當(dāng)前所有的display對象。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見屏幕錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
1400001 | Invalid display or screen. |
示例:
- let displayClass = null;
- display.getAllDisplays((err, data) => {
- displayClass = data;
- if (err.code) {
- console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
- });
getAllDisplays(): Promise<Array<Display>>
獲取當(dāng)前所有的display對象,使用Promise異步回調(diào)。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
返回值:
類型 | 說明 |
---|---|
Promise<Array<Display>> | Promise對象。返回當(dāng)前所有的display對象。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見屏幕錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
1400001 | Invalid display or screen. |
示例:
- let displayClass = null;
- let promise = display.getAllDisplays();
- promise.then((data) => {
- displayClass = data;
- console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
- }).catch((err) => {
- console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));
- });
on(type: 'add'|'remove'|'change', callback: Callback<number>): void
開啟顯示設(shè)備變化的監(jiān)聽。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 監(jiān)聽事件。 - type為"add",表示增加顯示設(shè)備事件。例如:插入顯示器。 - type為"remove",表示移除顯示設(shè)備事件。例如:移除顯示器。 - type為"change",表示改變顯示設(shè)備事件。例如:顯示器方向改變。 |
callback | Callback<number> | 是 | 回調(diào)函數(shù)。返回監(jiān)聽到的顯示設(shè)備的id。 |
示例:
- let callback = (data) => {
- console.info('Listening enabled. Data: ' + JSON.stringify(data));
- };
- try {
- display.on("add", callback);
- } catch (exception) {
- console.error('Failed to register callback. Code: ' + JSON.stringify(exception));
- }
off(type: 'add'|'remove'|'change', callback?: Callback<number>): void
關(guān)閉顯示設(shè)備變化的監(jiān)聽。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
type | string | 是 | 監(jiān)聽事件。 - type為"add",表示增加顯示設(shè)備事件。例如:插入顯示器。 - type為"remove",表示移除顯示設(shè)備事件。例如:移除顯示器。 - type為"change",表示改變顯示設(shè)備事件。例如:顯示器方向改變。 |
callback | Callback<number> | 否 | 回調(diào)函數(shù)。返回監(jiān)聽到的顯示設(shè)備的id。 |
示例:
- try {
- display.off("remove");
- } catch (exception) {
- console.error('Failed to unregister callback. Code: ' + JSON.stringify(exception));
- }
getDefaultDisplay(callback: AsyncCallback<Display>): void
獲取當(dāng)前默認(rèn)的display對象,使用callback異步回調(diào)。
從 API version 7開始支持,從API version 9開始廢棄,推薦使用getDefaultDisplaySync()。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<Display> | 是 | 回調(diào)函數(shù)。返回當(dāng)前默認(rèn)的display對象。 |
示例:
- let displayClass = null;
- display.getDefaultDisplay((err, data) => {
- if (err.code) {
- console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in obtaining the default display object. Data:' + JSON.stringify(data));
- displayClass = data;
- });
getDefaultDisplay(): Promise<Display>
獲取當(dāng)前默認(rèn)的display對象,使用Promise異步回調(diào)。
從 API version 7開始支持,從API version 9開始廢棄,推薦使用getDefaultDisplaySync()。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
返回值:
類型 | 說明 |
---|---|
Promise<Display> | Promise對象。返回當(dāng)前默認(rèn)的display對象。 |
示例:
- let displayClass = null;
- let promise = display.getDefaultDisplay();
- promise.then((data) => {
- displayClass = data;
- console.info('Succeeded in obtaining the default display object. Data:' + JSON.stringify(data));
- }).catch((err) => {
- console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(err));
- });
getAllDisplay(callback: AsyncCallback<Array<Display>>): void
獲取當(dāng)前所有的display對象,使用callback異步回調(diào)。
從 API version 7開始支持,從API version 9開始廢棄,推薦使用getAllDisplays()。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<Array<Display>> | 是 | 回調(diào)函數(shù)。返回當(dāng)前所有的display對象。 |
示例:
- display.getAllDisplay((err, data) => {
- if (err.code) {
- console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
- });
getAllDisplay(): Promise<Array<Display>>
獲取當(dāng)前所有的display對象,使用Promise異步回調(diào)。
從 API version 7開始支持,從API version 9開始廢棄,推薦使用getAllDisplays()。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
返回值:
類型 | 說明 |
---|---|
Promise<Array<Display>> | Promise對象。返回當(dāng)前所有的display對象。 |
示例:
- let promise = display.getAllDisplay();
- promise.then((data) => {
- console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
- }).catch((err) => {
- console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));
- });
屏幕實(shí)例。描述display對象的屬性和方法。
下列API示例中都需先使用getAllDisplays()、getDefaultDisplaySync()中的任一方法獲取到Display實(shí)例,再通過此實(shí)例調(diào)用對應(yīng)方法。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
id | number | 是 | 否 | 顯示設(shè)備的id號。 |
name | string | 是 | 否 | 顯示設(shè)備的名稱。 |
alive | boolean | 是 | 否 | 顯示設(shè)備是否啟用。 |
state | 是 | 否 | 顯示設(shè)備的狀態(tài)。 | |
refreshRate | number | 是 | 否 | 顯示設(shè)備的刷新率。 |
rotation | number | 是 | 否 | 顯示設(shè)備的屏幕旋轉(zhuǎn)角度。 值為0時(shí),表示顯示設(shè)備屏幕旋轉(zhuǎn)為0°; 值為1時(shí),表示顯示設(shè)備屏幕旋轉(zhuǎn)為90°; 值為2時(shí),表示顯示設(shè)備屏幕旋轉(zhuǎn)為180°; 值為3時(shí),表示顯示設(shè)備屏幕旋轉(zhuǎn)為270°。 |
width | number | 是 | 否 | 顯示設(shè)備的寬度,單位為像素。 |
height | number | 是 | 否 | 顯示設(shè)備的高度,單位為像素。 |
densityDPI | number | 是 | 否 | 顯示設(shè)備的屏幕密度,表示每英寸點(diǎn)數(shù)。一般取值160,480等。 |
densityPixels | number | 是 | 否 | 顯示設(shè)備的邏輯密度,是像素單位無關(guān)的縮放系數(shù)。一般取值1,3等。 |
scaledDensity | number | 是 | 否 | 顯示設(shè)備的顯示字體的縮放因子。通常與densityPixels相同。 |
xDPI | number | 是 | 否 | x方向中每英寸屏幕的確切物理像素值。 |
yDPI | number | 是 | 否 | y方向中每英寸屏幕的確切物理像素值。 |
getCutoutInfo(callback: AsyncCallback<CutoutInfo>): void
獲取挖孔屏、劉海屏、瀑布屏等不可用屏幕區(qū)域信息。使用callback異步回調(diào)。建議應(yīng)用布局規(guī)避該區(qū)域。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback<CutoutInfo> | 是 | 回調(diào)函數(shù)。返回描述不可用屏幕區(qū)域的CutoutInfo對象。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見屏幕錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
1400001 | Invalid display or screen. |
示例:
- let displayClass = null;
- try {
- displayClass = display.getDefaultDisplaySync();
- displayClass.getCutoutInfo((err, data) => {
- if (err.code) {
- console.error('Failed to get cutoutInfo. Code: ' + JSON.stringify(err));
- return;
- }
- console.info('Succeeded in getting cutoutInfo. data: ' + JSON.stringify(data));
- });
- } catch (exception) {
- console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception));
- }
getCutoutInfo(): Promise<CutoutInfo>
獲取挖孔屏、劉海屏、瀑布屏等不可用屏幕區(qū)域信息。使用Promise異步回調(diào)。建議應(yīng)用布局規(guī)避該區(qū)域。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
返回值:
類型 | 說明 |
---|---|
Promise<CutoutInfo> | Promise對象。返回描述不可用屏幕區(qū)域的CutoutInfo對象。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見屏幕錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
1400001 | Invalid display or screen. |
示例:
- let displayClass = null;
- try {
- displayClass = display.getDefaultDisplaySync();
- let promise = displayClass.getCutoutInfo();
- promise.then((data) => {
- console.info('Succeeded in getting cutoutInfo. Data: ' + JSON.stringify(data));
- }).catch((err) => {
- console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));
- });
- } catch (exception) {
- console.error('Failed to obtain the default display object. Code: ' + JSON.stringify(exception));
- }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: