当前位置:网站首页>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 |
边栏推荐
- The JVM collection that Alibaba's top architects have summarized for many years, where can't I check it!
- A small test of basic grammar, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, basic grammar of go lang and the use of variables EP02
- SD NAND Flash简介!
- Chapter 5: Multithreaded Communication—wait and notify
- Import Excel/CSV from Sub Grid within Dynamics 365
- Complete image segmentation efficiently based on MindSpore and realize Dice!
- 012年通过修补_sss_提高扩散模型效率
- 单片机:温度控制DS18B20
- 多线程(进阶) - 2.5w字总结
- 第六章:activiti流程分流判断之排它网关和并行网关
猜你喜欢

【MindSpore Easy-Diantong Robot-01】You may have seen many knowledge quiz robots, but this one is a bit different

sqlserver编写通用脚本实现获取一年前日期的方法

In-depth understanding of timeout settings for Istio traffic management

2022华数杯数学建模A题环形振荡器的优化设计思路思路代码分享

Microcontroller: temperature control DS18B20

SQL外连接之交集、并集、差集查询

电气工程的标准是什么

Dynamics 365Online PDF导出及打印

linux下oracle常见操作以及日常积累知识点(函数、定时任务)

上位机开发C#语言:模拟STC串口助手接收单片机发送数据
随机推荐
Microcontroller: temperature control DS18B20
牛刀小试基本语法,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本语法和变量的使用EP02
Leetcode刷题——623. 在二叉树中增加一行
linux下oracle常见操作以及日常积累知识点(函数、定时任务)
Where is your most secretive personality?
Data Middle Office Construction (10): Data Security Management
【MindSpore Easy-Diantong Robot-01】You may have seen many knowledge quiz robots, but this one is a bit different
R语言使用yardstick包的pr_curve函数评估多分类(Multiclass)模型的性能、查看模型在多分类每个分类上的ROC曲线(precision(精准率),R代表的是recall(召回率)
Opencv图像缩放和平移
导火索:OAuth 2.0四种授权登录方式必读
深入理解 Istio 流量管理的超时时间设置
一张图看懂 SQL 的各种 join 用法!
负载均衡应用场景
【综合类型第 35 篇】程序员的七夕浪漫时刻
[Android] How to use RecycleView in Kotlin project
The query that the user's test score is greater than the average score of a single subject
字节一面:TCP 和 UDP 可以使用同一个端口吗?
七夕来袭!还要做CDH数据迁移怎么办?来看看DistCp
第四章:redis 数组结构的set和一些通用命令「建议收藏」
【Office】Microsoft Office下载地址合集(微软官方原版离线安装下载)