当前位置:网站首页>How OpenHarmony Query Device Type
How OpenHarmony Query Device Type
2022-08-05 10:49:00 【Huawei cloud】
在应用开发过程中查询设备类型.
通过js接口查询指定系统参数(const.build.characteristics)进而确定设备类型,详见.
// @ts-nocheckimport parameter from '@ohos.systemParameter'@[email protected] GetDeviceTypeSample { @State deviceType: string = 'unknown'; build() { Column() { Text("获取设备类型").fontSize(24) Text(this.deviceType).fontSize(24).onClick(()=>{ try { this.deviceType = parameter.getSync("const.build.characteristics"); } catch(e) { console.log("getSync unexpected error: " + e); } }) } .width('100%') .height('100%') }}
通过deviceInfo查询设备类型,deviceInfo中各个字段的含义请参考.
// @ts-nocheck/* * Copyright (c) 2021 JianGuo Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */import parameter from '@ohos.systemParameter'@[email protected] GetDeviceTypeSample { @State deviceType: string = 'unknown'; build() { Column() { Text("获取设备类型").fontSize(24) //通过js接口查询指定系统参数(const.build.characteristics)进而确定设备类型 Text(this.deviceType).fontSize(24).onClick(()=>{ try { this.deviceType = parameter.getSync("const.build.characteristics"); } catch(e) { console.log("getSync unexpected error: " + e); } }) //通过deviceInfo查询设备类型 Text(this.deviceType).fontSize(24).onClick(()=>{ try { this.deviceType= deviceInfo.deviceType; } catch(e) { console.log("getSync unexpected error: " + e); } }) //通过display查询显示设备的属性(包括屏幕宽、高和屏幕密度等) Text(this.deviceType).fontSize(24).onClick(()=>{ display.getDefaultDisplay() .then((displayInfo) => { console.info('Display width: '+ displayInfo.width); console.info('Display height: '+ displayInfo.height); console.info('Display density: '+ displayInfo.densityDPI); }) .catch((error) => { console.error('Failed to obtain the default display size. Cause: '+JSON.stringify(error)); }) }) } .width('100%') .height('100%') }}
如何查询屏幕/窗口尺寸
在应用开发过程中,为了在不同的设备上取得更好的显示效果,开发者可能需要查询屏幕尺寸或应用显示窗口尺寸.
通过display查询显示设备的属性(包括屏幕宽、高和屏幕密度等),详见.
// @ts-nocheck/* * Copyright (c) 2021 JianGuo Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */import deviceInfo from'@ohos.deviceInfo'import parameter from '@ohos.systemParameter'import display from '@ohos.display';@[email protected] GetDeviceTypeSample { @State deviceType: string = 'deviceType'; @State device: string = 'device'; @State displayInfo: string = 'displayInfo'; aboutToAppear() { try { this.deviceType = parameter.getSync("const.build.characteristics"); } catch(e) { console.log("getSync unexpected error: " + e); } } build() { Column() { Text("设备属性").fontSize(36) //通过js接口查询指定系统参数(const.build.characteristics)进而确定设备类型 Text(this.deviceType).fontSize(28).onClick(() => { try { this.deviceType = parameter.getSync("const.build.characteristics"); console.log("坚果" + this.deviceType); } catch (e) { console.log("getSync unexpected error: " + e); } }) //通过deviceInfo查询设备类型 Text( this.device).fontSize(28).onClick(() => { this.device= deviceInfo.deviceType; }) //通过display查询显示设备的属性(包括屏幕宽、高和屏幕密度等) Text(this.displayInfo).fontSize(28).onClick(() => { display.getDefaultDisplay() .then((displayInfo) => { console.info('Display width: ' + displayInfo.width); console.info('Display height: ' + displayInfo.height); console.info('Display density: ' + displayInfo.densityDPI); this.displayInfo=JSON.stringify(displayInfo); console.info('Display density: ' + JSON.stringify(displayInfo)); }) .catch((error) => { console.error('Failed to obtain the default display size. Cause: ' + JSON.stringify(error)); }) }) } .width('100%') .height('100%').justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Center) }}
运行之后,在控制台打印
{"alive":true,"densityDPI":560,"densityPixels":3.5,"height":2560,"id":0,"name":"内置屏幕","refreshRate":60.000004,"rotation":0,"scaledDensity":3.5,"state":2,"width":1440,"xDPI":560,"yDPI":560}
下面是参数描述
Display
描述display对象的属性.
系统能力: 以下各项对应的系统能力均为 SystemCapability.WindowManager.WindowManager.Core.
名称 | 参数类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
id | number | 是 | 否 | 显示设备的id号. |
name | string | 是 | 否 | 显示设备的名称. |
alive | boolean | 是 | 否 | Shows whether the device is enabled. |
state | 是 | 否 | Displays the status of the device. | |
refreshRate | number | 是 | 否 | 显示设备的刷新率. |
rotation | number | 是 | 否 | Displays the screen rotation angle of the device. |
width | number | 是 | 否 | Displays the width of the device,单位为像素. |
height | number | 是 | 否 | Displays the height of the device,单位为像素. |
densityDPI | number | 是 | 否 | Displays the screen density of the device,单位为DPI. |
densityPixels | number | 是 | 否 | Displays the screen density of the device,单位为像素. |
scaledDensity | number | 是 | 否 | The scaling factor of the display device's display font. |
xDPI | number | 是 | 否 | xThe exact physical pixel value per inch of screen in the orientation. |
yDPI | number | 是 | 否 | yThe exact physical pixel value per inch of screen in the orientation. |
设备信息
说明: 本模块首批接口从API version 6开始支持.后续版本的新增接口,采用上角标单独标记接口的起始版本.
导入模块
import deviceInfo from '@ohos.deviceInfo'
属性
系统能力:以下各项对应的系统能力均为SystemCapability.Startup.SysInfo. 权限:The permissions required for each of the following vary,详见下表.
名称 | 参数类型 | 可读 | 可写 | 描述 |
---|---|---|---|---|
deviceType | string | 是 | 否 | 设备类型. |
manufacture | string | 是 | 否 | 设备厂家名称. |
brand | string | 是 | 否 | Device brand name. |
marketName | string | 是 | 否 | External product line. |
productSeries | string | 是 | 否 | 产品系列. |
productModel | string | 是 | 否 | 认证型号. |
softwareModel | string | 是 | 否 | Internal software submodel. |
hardwareModel | string | 是 | 否 | 硬件版本号. |
hardwareProfile | string | 是 | 否 | 硬件Profile. |
serial | string | 是 | 否 | 设备序列号. 需要权限:ohos.permission.sec.ACCESS_UDID,This permission is a system permission |
bootloaderVersion | string | 是 | 否 | Bootloader版本号. |
abiList | string | 是 | 否 | 应用二进制接口(Abi)列表. |
securityPatchTag | string | 是 | 否 | 安全补丁级别. |
displayVersion | string | 是 | 否 | 产品版本. |
incrementalVersion | string | 是 | 否 | 差异版本号. |
osReleaseType | string | 是 | 否 | The release type of the system,取值为: - Canary:Early preview releases for specific developers,不承诺API稳定性. - Beta:Publicly released to developersBeta版本,不承诺API稳定性. - Release:The official version that is publicly released to developers,承诺API稳定性. |
osFullName | string | 是 | 否 | 系统版本. |
majorVersion | number | 是 | 否 | Major版本号,Added with major version updates. |
seniorVersion | number | 是 | 否 | Senior版本号,with local architecture、Significant feature additions. |
featureVersion | number | 是 | 否 | Feature版本号,Identifies the planned new feature release. |
buildVersion | number | 是 | 否 | Build版本号,Identifies the version number of the compiled build. |
sdkApiVersion | number | 是 | 否 | 系统软件API版本. |
firstApiVersion | number | 是 | 否 | The first version of system softwareAPI版本. |
versionId | string | 是 | 否 | 版本ID. |
buildType | string | 是 | 否 | 构建类型. |
buildUser | string | 是 | 否 | 构建用户. |
buildHost | string | 是 | 否 | 构建主机. |
buildTime | string | 是 | 否 | 构建时间. |
buildRootHash | string | 是 | 否 | 构建版本Hash. |
udid7+ | string | 是 | 否 | 设备Udid. 需要权限:ohos.permission.sec.ACCESS_UDID,This permission is a system permission |
在应用开发过程中查询设备类型.
通过js接口查询指定系统参数(const.build.characteristics)进而确定设备类型,详见.
// @ts-nocheckimport parameter from '@ohos.systemParameter'@[email protected] GetDeviceTypeSample { @State deviceType: string = 'unknown'; build() { Column() { Text("获取设备类型").fontSize(24) Text(this.deviceType).fontSize(24).onClick(()=>{ try { this.deviceType = parameter.getSync("const.build.characteristics"); } catch(e) { console.log("getSync unexpected error: " + e); } }) } .width('100%') .height('100%') }}
通过deviceInfo查询设备类型,deviceInfo中各个字段的含义请参考.
// @ts-nocheck/* * Copyright (c) 2021 JianGuo Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */import parameter from '@ohos.systemParameter'@[email protected] GetDeviceTypeSample { @State deviceType: string = 'unknown'; build() { Column() { Text("获取设备类型").fontSize(24) //通过js接口查询指定系统参数(const.build.characteristics)进而确定设备类型 Text(this.deviceType).fontSize(24).onClick(()=>{ try { this.deviceType = parameter.getSync("const.build.characteristics"); } catch(e) { console.log("getSync unexpected error: " + e); } }) //通过deviceInfo查询设备类型 Text(this.deviceType).fontSize(24).onClick(()=>{ try { this.deviceType= deviceInfo.deviceType; } catch(e) { console.log("getSync unexpected error: " + e); } }) //通过display查询显示设备的属性(包括屏幕宽、高和屏幕密度等) Text(this.deviceType).fontSize(24).onClick(()=>{ display.getDefaultDisplay() .then((displayInfo) => { console.info('Display width: '+ displayInfo.width); console.info('Display height: '+ displayInfo.height); console.info('Display density: '+ displayInfo.densityDPI); }) .catch((error) => { console.error('Failed to obtain the default display size. Cause: '+JSON.stringify(error)); }) }) } .width('100%') .height('100%') }}
如何查询屏幕/窗口尺寸
在应用开发过程中,为了在不同的设备上取得更好的显示效果,开发者可能需要查询屏幕尺寸或应用显示窗口尺寸.
通过display查询显示设备的属性(包括屏幕宽、高和屏幕密度等),详见.
// @ts-nocheck/* * Copyright (c) 2021 JianGuo Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */import deviceInfo from'@ohos.deviceInfo'import parameter from '@ohos.systemParameter'import display from '@ohos.display';@[email protected] GetDeviceTypeSample { @State deviceType: string = 'deviceType'; @State device: string = 'device'; @State displayInfo: string = 'displayInfo'; aboutToAppear() { try { this.deviceType = parameter.getSync("const.build.characteristics"); } catch(e) { console.log("getSync unexpected error: " + e); } } build() { Column() { Text("设备属性").fontSize(36) //通过js接口查询指定系统参数(const.build.characteristics)进而确定设备类型 Text(this.deviceType).fontSize(28).onClick(() => { try { this.deviceType = parameter.getSync("const.build.characteristics"); console.log("坚果" + this.deviceType); } catch (e) { console.log("getSync unexpected error: " + e); } }) //通过deviceInfo查询设备类型 Text( this.device).fontSize(28).onClick(() => { this.device= deviceInfo.deviceType; }) //通过display查询显示设备的属性(包括屏幕宽、高和屏幕密度等) Text(this.displayInfo).fontSize(28).onClick(() => { display.getDefaultDisplay() .then((displayInfo) => { console.info('Display width: ' + displayInfo.width); console.info('Display height: ' + displayInfo.height); console.info('Display density: ' + displayInfo.densityDPI); this.displayInfo=JSON.stringify(displayInfo); console.info('Display density: ' + JSON.stringify(displayInfo)); }) .catch((error) => { console.error('Failed to obtain the default display size. Cause: ' + JSON.stringify(error)); }) }) } .width('100%') .height('100%').justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Center) }}
运行之后,在控制台打印
{"alive":true,"densityDPI":560,"densityPixels":3.5,"height":2560,"id":0,"name":"内置屏幕","refreshRate":60.000004,"rotation":0,"scaledDensity":3.5,"state":2,"width":1440,"xDPI":560,"yDPI":560}
下面是参数描述
Display
描述display对象的属性.
系统能力: 以下各项对应的系统能力均为 SystemCapability.WindowManager.WindowManager.Core.
名称 | 参数类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
id | number | 是 | 否 | 显示设备的id号. |
name | string | 是 | 否 | 显示设备的名称. |
alive | boolean | 是 | 否 | Shows whether the device is enabled. |
state | 是 | 否 | Displays the status of the device. | |
refreshRate | number | 是 | 否 | 显示设备的刷新率. |
rotation | number | 是 | 否 | Displays the screen rotation angle of the device. |
width | number | 是 | 否 | Displays the width of the device,单位为像素. |
height | number | 是 | 否 | Displays the height of the device,单位为像素. |
densityDPI | number | 是 | 否 | Displays the screen density of the device,单位为DPI. |
densityPixels | number | 是 | 否 | Displays the screen density of the device,单位为像素. |
scaledDensity | number | 是 | 否 | The scaling factor of the display device's display font. |
xDPI | number | 是 | 否 | xThe exact physical pixel value per inch of screen in the orientation. |
yDPI | number | 是 | 否 | yThe exact physical pixel value per inch of screen in the orientation. |
设备信息
说明: 本模块首批接口从API version 6开始支持.后续版本的新增接口,采用上角标单独标记接口的起始版本.
导入模块
import deviceInfo from '@ohos.deviceInfo'
属性
系统能力:以下各项对应的系统能力均为SystemCapability.Startup.SysInfo. 权限:The permissions required for each of the following vary,详见下表.
名称 | 参数类型 | 可读 | 可写 | 描述 |
---|---|---|---|---|
deviceType | string | 是 | 否 | 设备类型. |
manufacture | string | 是 | 否 | 设备厂家名称. |
brand | string | 是 | 否 | Device brand name. |
marketName | string | 是 | 否 | External product line. |
productSeries | string | 是 | 否 | 产品系列. |
productModel | string | 是 | 否 | 认证型号. |
softwareModel | string | 是 | 否 | Internal software submodel. |
hardwareModel | string | 是 | 否 | 硬件版本号. |
hardwareProfile | string | 是 | 否 | 硬件Profile. |
serial | string | 是 | 否 | 设备序列号. 需要权限:ohos.permission.sec.ACCESS_UDID,This permission is a system permission |
bootloaderVersion | string | 是 | 否 | Bootloader版本号. |
abiList | string | 是 | 否 | 应用二进制接口(Abi)列表. |
securityPatchTag | string | 是 | 否 | 安全补丁级别. |
displayVersion | string | 是 | 否 | 产品版本. |
incrementalVersion | string | 是 | 否 | 差异版本号. |
osReleaseType | string | 是 | 否 | The release type of the system,取值为: - Canary:Early preview releases for specific developers,不承诺API稳定性. - Beta:Publicly released to developersBeta版本,不承诺API稳定性. - Release:The official version that is publicly released to developers,承诺API稳定性. |
osFullName | string | 是 | 否 | 系统版本. |
majorVersion | number | 是 | 否 | Major版本号,Added with major version updates. |
seniorVersion | number | 是 | 否 | Senior版本号,with local architecture、Significant feature additions. |
featureVersion | number | 是 | 否 | Feature版本号,Identifies the planned new feature release. |
buildVersion | number | 是 | 否 | Build版本号,Identifies the version number of the compiled build. |
sdkApiVersion | number | 是 | 否 | 系统软件API版本. |
firstApiVersion | number | 是 | 否 | The first version of system softwareAPI版本. |
versionId | string | 是 | 否 | 版本ID. |
buildType | string | 是 | 否 | 构建类型. |
buildUser | string | 是 | 否 | 构建用户. |
buildHost | string | 是 | 否 | 构建主机. |
buildTime | string | 是 | 否 | 构建时间. |
buildRootHash | string | 是 | 否 | 构建版本Hash. |
udid7+ | string | 是 | 否 | 设备Udid. 需要权限:ohos.permission.sec.ACCESS_UDID,This permission is a system permission |
边栏推荐
- In-depth understanding of timeout settings for Istio traffic management
- 【综合类型第 35 篇】程序员的七夕浪漫时刻
- HDD杭州站•ArkUI让开发更灵活
- JS introduction to reverse the recycling business network of learning, simple encryption mobile phone number
- The JVM collection that Alibaba's top architects have summarized for many years, where can't I check it!
- Huawei's lightweight neural network architecture GhostNet has been upgraded again, and G-GhostNet (IJCV22) has shown its talents on the GPU
- Common operations of oracle under linux and daily accumulation of knowledge points (functions, timed tasks)
- Offensive World-PWN-new_easypwn
- SD NAND Flash简介!
- 用户考试分数大于单科科目平均分的查询
猜你喜欢
STM32+ULN2003 drives 28BYJ4 stepper motor (forward and reverse according to the number of turns)
Data Middle Office Construction (10): Data Security Management
Create a Dapp, why choose Polkadot?
JS introduction to reverse the recycling business network of learning, simple encryption mobile phone number
SQL外连接之交集、并集、差集查询
化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)
three.js debugging tool dat.gui use
PCB布局必知必会:教你正确地布设运算放大器的电路板
什么是 DevOps?看这一篇就够了!
MySQL 中 auto_increment 自动插入主键值
随机推荐
如何选币与确定对应策略研究
用KUSTO查询语句(KQL)在Azure Data Explorer Database上查询LOG实战
How can project cost control help project success?
FPGA:基础入门LED灯闪烁
我们的Web3创业项目,黄了
DocuWare平台——文档管理的内容服务和工作流自动化的平台详细介绍(下)
例题 可达性统计+bitset的使用
Our Web3 Entrepreneurship Project, Yellow
数分面试(一)----与业务相关
[Strong Net Cup 2022] WP-UM
uniapp connect ibeacon
SD NAND Flash简介!
【深度学习】mmclassification mmcls 实战多标签分类任务教程,分类任务
第七章,activiti个人任务分配,动态指定和监听器指定任务委派人「建议收藏」
深入理解 Istio 流量管理的超时时间设置
【MySQL基础】-【数据处理之增删改】
【综合类型第 35 篇】程序员的七夕浪漫时刻
化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)
abc262-D(dp)
How to choose coins and determine the corresponding strategy research