1# @ohos.deviceInfo (设备信息) 2 3本模块提供终端设备信息查询,开发者不可配置。 4 5> **说明:** 6> 7> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8> 部分参数返回值为default的,会在正式发布的版本中配置。 9> 本模块接口返回设备常量信息,建议应用只调用一次,不需要频繁调用。 10 11## 导入模块 12 13```ts 14import { deviceInfo } from '@kit.BasicServicesKit'; 15``` 16 17## 属性 18> **说明:** 19> 未特殊说明的字段,数据长度最大值为96字节。 20 21**系统能力**:SystemCapability.Startup.SystemInfo。 22 23**权限**:以下各项所需要的权限有所不同,详见下表。 24 25| 名称 | 类型 | 可读 | 可写 | 说明 | 26| -------- | -------- | -------- | -------- | -------- | 27| deviceType | string | 是 | 否 | 设备类型。详细请参考[deviceTypes标签](../../quick-start/module-configuration-file.md#devicetypes标签)。<br/>**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。<br/>示例:<!--RP1-->wearable<!--RP1End-->| 28| manufacture | string | 是 | 否 | 设备厂家名称。<br/>示例:HUAWEI | 29| brand | string | 是 | 否 | 设备品牌名称。<br/>**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。<br/>示例:HUAWEI | 30| marketName | string | 是 | 否 | 外部产品系列。<br/>示例:<!--RP2-->Mate XX<!--RP2End--> | 31| productSeries | string | 是 | 否 | 产品系列。<br/>示例:<!--RP3-->TAS<!--RP3End--> | 32| productModel | string | 是 | 否 | 认证型号。<br/>**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。<br/>示例:<!--RP4-->TAS-AL00<!--RP4End--> | 33| productModelAlias<sup>14+</sup> | string | 是 | 否 | 认证型号别名。<br/>**原子化服务API**:从API version 14开始,该接口支持在原子化服务中使用。<br/>示例:TAS-AL00 | 34| softwareModel | string | 是 | 否 | 内部软件子型号。<br/>示例:<!--RP5-->TAS-AL00<!--RP5End--> | 35| hardwareModel | string | 是 | 否 | 硬件版本号。<br/>示例:<!--RP6-->TASA00CVN1<!--RP6End--> | 36| hardwareProfile<sup>(deprecated) </sup> | string | 是 | 否 | 硬件Profile。<br/>**说明**:<br/>从API version 6 开始支持,从API version 9 开始废弃。<br/>示例:default | 37| serial | string | 是 | 否 | 设备序列号。<br/>**说明**:可作为设备唯一识别码。<br/>**需要权限**:ohos.permission.sec.ACCESS_UDID(该权限只允许系统应用及企业定制应用申请) <br/>示例:序列号随设备差异 | 38| bootloaderVersion | string | 是 | 否 | Bootloader版本号。<br/>示例:bootloader | 39| abiList | string | 是 | 否 | 应用二进制接口(Abi)。<br/>示例:arm64-v8a | 40| securityPatchTag | string | 是 | 否 | 安全补丁级别。<br/>示例:<!--RP7-->2021-01-01<!--RP7End--> | 41| displayVersion | string | 是 | 否 | 产品版本。<br/>示例:<!--RP8-->XXX X.X.X.X<!--RP8End--> | 42| incrementalVersion | string | 是 | 否 | 差异版本号。<br/>示例:default | 43| osReleaseType | string | 是 | 否 | 系统的发布类型,取值为:<br/>- Canary:面向特定开发者发布的早期预览版本,不承诺API稳定性。<br/>- Beta:面向开发者公开发布的Beta版本,不承诺API稳定性。<br/>- Release:面向开发者公开发布的正式版本,承诺API稳定性。<br/>示例:<!--RP9-->Canary/Beta/Release<!--RP9End--> | 44| osFullName | string | 是 | 否 | 系统版本,版本格式OpenHarmony-x.x.x.x,x为数值。<br/>**原子化服务API**:从API version 11开始,该接口支持在原子化服务中使用。<br/>示例:<!--RP10-->Openharmony-5.0.0.1<!--RP10End--> | 45| majorVersion | number | 是 | 否 | Major版本号,随主版本更新增加,值为osFullName中的第一位数值,建议直接使用deviceInfo.majorVersion获取,可提升效率,不建议开发者解析osFullName获取。<br/>示例:5 | 46| seniorVersion | number | 是 | 否 | Senior版本号,随局部架构、重大特性增加,值为osFullName中的第二位数值,建议直接使用deviceInfo.seniorVersion获取,可提升效率,不建议开发者自主解析osFullName获取。<br/>示例:0 | 47| featureVersion | number | 是 | 否 | Feature版本号,标识规划的新特性版本,值为osFullName中的第三位数值,建议直接使用deviceInfo.featureVersion获取,可提升效率,不建议开发者自主解析osFullName获取。<br/>示例:0 | 48| buildVersion | number | 是 | 否 | Build版本号,标识编译构建的版本号,值为osFullName中的第四位数值,建议直接使用deviceInfo.buildVersion获取,可提升效率,不建议开发者自主解析osFullName获取。<br/>示例:1 | 49| sdkApiVersion | number | 是 | 否 | 系统软件API版本。<br/>**原子化服务API**:从API version 14开始,该接口支持在原子化服务中使用。<br/>示例:12 | 50| firstApiVersion | number | 是 | 否 | 首个版本系统软件API版本。<br/>示例:3 | 51| versionId | string | 是 | 否 | 版本ID。由deviceType、manufacture、brand、productSeries、osFullName、productModel、softwareModel、sdkApiVersion、incrementalVersion、buildType拼接组成。<br/>示例:wearable/HUAWEI/HUAWEI/TAS/OpenHarmony-5.0.0.1/TAS-AL00/TAS-AL00/12/default/release:nolog | 52| buildType | string | 是 | 否 | 构建类型。<br/>示例:release:nolog | 53| buildUser | string | 是 | 否 | 构建用户。<br/>示例:default | 54| buildHost | string | 是 | 否 | 构建主机。<br/>示例:default | 55| buildTime | string | 是 | 否 | 构建时间。<br/>示例:default | 56| buildRootHash | string | 是 | 否 | 构建版本Hash。<br/>示例:default | 57| udid<sup>7+</sup> | string | 是 | 否 | 设备Udid。<br/>**说明**:数据长度为65字节。可作为设备唯一识别码。<br/>**需要权限**:ohos.permission.sec.ACCESS_UDID(该权限只允许系统应用及企业定制应用申请)<br/>示例:9D6AABD147XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXE5536412 | 58| distributionOSName<sup>10+</sup> | string | 是 | 否 | 发行版系统名称<!--Del-->,由发行方定义<!--DelEnd-->。<br/>示例:OpenHarmony | 59| distributionOSVersion<sup>10+</sup> | string | 是 | 否 | 发行版系统版本号<!--Del-->,由发行方定义<!--DelEnd-->。<!--RP11--><!--RP11End--><br/>示例:5.0.0.1 | 60| distributionOSApiVersion<sup>10+</sup> | number| 是 | 否 | 发行版系统api版本<!--Del-->,由发行方定义<!--DelEnd-->。<br/>示例:50001 | 61| distributionOSApiName<sup>13+</sup> | string | 是 | 否 | 发行版系统api版本名称<!--Del-->,由发行方定义<!--DelEnd-->。 | 62| distributionOSReleaseType<sup>10+</sup> | string | 是 | 否 | 发行版系统类型<!--Del-->,由发行方定义<!--DelEnd-->。<br/>示例:Release | 63| ODID<sup>12+</sup> | string | 是 | 否 |开发者匿名设备标识符。<br/>**ODID值会在以下场景重新生成**:<br/>手机恢复出厂设置。<br/>同一设备上同一个开发者(developerId相同)的应用全部卸载后重新安装时。<br/>**ODID生成规则**:<br/>根据签名信息里developerId解析出的groupId生成,developerId规则为groupId.developerId,若无groupId则取整个developerId作为groupId。<br/>同一设备上运行的同一个开发者(developerId相同)的应用,ODID相同。<br/>同一个设备上不同开发者(developerId不同)的应用,ODID不同。<br/>不同设备上同一个开发者(developerId相同)的应用,ODID不同。<br/>不同设备上不同开发者(developerId不同)的应用,ODID不同。<br/>**说明**:数据长度为37字节。<br/>示例:1234a567-XXXX-XXXX-XXXX-XXXXXXXXXXXX | 64| diskSN<sup>15+</sup> | string | 是 | 否 | 硬盘序列号。<br/> **说明** :该字段只能在2in1上设备进行查询,其他设备查询结果为空。<br/> **需要权限**:ohos.permission.ACCESS_DISK_PHY_INFO <br/> 示例:2502EM400567 | 65 66**示例** 67 68```ts 69 import { deviceInfo } from '@kit.BasicServicesKit'; 70 71 let deviceTypeInfo: string = deviceInfo.deviceType; 72 // 输出结果:the value of the deviceType is :wearable 73 console.info('the value of the deviceType is :' + deviceTypeInfo); 74 75 let manufactureInfo: string = deviceInfo.manufacture; 76 // 输出结果:the value of the manufacture is :HUAWEI 77 console.info('the value of the manufactureInfo is :' + manufactureInfo); 78 79 let brandInfo: string = deviceInfo.brand; 80 // 输出结果:the value of the brand is :HUAWEI 81 console.info('the value of the device brand is :' + brandInfo); 82 83 let marketNameInfo: string = deviceInfo.marketName; 84 // 输出结果:the value of the marketName is :Mate XX 85 console.info('the value of the deviceInfo marketName is :' + marketNameInfo); 86 87 let productSeriesInfo: string = deviceInfo.productSeries; 88 // 输出结果:the value of the productSeries is :TAS 89 console.info('the value of the deviceInfo productSeries is :' + productSeriesInfo); 90 91 let productModelInfo: string = deviceInfo.productModel; 92 // 输出结果:the value of the productModel is :TAS-AL00 93 console.info('the value of the deviceInfo productModel is :' + productModelInfo); 94 95 let productModelAliasInfo: string = deviceInfo.productModelAlias; 96 console.info('the value of the deviceInfo productModelAlias is :' + productModelAliasInfo); 97 98 let softwareModelInfo: string = deviceInfo.softwareModel; 99 // 输出结果:the value of the softwareModel is :TAS-AL00 100 console.info('the value of the deviceInfo softwareModel is :' + softwareModelInfo); 101 102 let hardwareModelInfo: string = deviceInfo.hardwareModel; 103 // 输出结果:the value of the hardwareModel is :TASA00CVN1 104 console.info('the value of the deviceInfo hardwareModel is :' + hardwareModelInfo); 105 106 let serialInfo: string = deviceInfo.serial; 107 // 输出结果:the value of the serial is :ABC123456789 108 console.info('the value of the deviceInfo serial is :' + serialInfo); 109 110 let bootloaderVersionInfo: string = deviceInfo.bootloaderVersion; 111 // 输出结果:the value of the bootloaderVersion is :bootloader 112 console.info('the value of the deviceInfo bootloaderVersion is :' + bootloaderVersionInfo); 113 114 let abiListInfo: string = deviceInfo.abiList; 115 // 输出结果:the value of the abiList is :arm64-v8a 116 console.info('the value of the deviceInfo abiList is :' + abiListInfo); 117 118 let securityPatchTagInfo: string = deviceInfo.securityPatchTag; 119 // 输出结果:the value of the securityPatchTag is :2021-01-01 120 console.info('the value of the deviceInfo securityPatchTag is :' + securityPatchTagInfo); 121 122 let displayVersionInfo: string = deviceInfo.displayVersion; 123 // 输出结果:the value of the displayVersion is :XXX X.X.X.X 124 console.info('the value of the deviceInfo displayVersion is :' + displayVersionInfo); 125 126 let incrementalVersionInfo: string = deviceInfo.incrementalVersion; 127 // 输出结果:the value of the incrementalVersion is :default 128 console.info('the value of the deviceInfo incrementalVersion is :' + incrementalVersionInfo); 129 130 let osReleaseTypeInfo: string = deviceInfo.osReleaseType; 131 // 输出结果:the value of the osReleaseType is :Release 132 console.info('the value of the deviceInfo osReleaseType is :' + osReleaseTypeInfo); 133 134 let osFullNameInfo: string = deviceInfo.osFullName; 135 // 输出结果:the value of the osFullName is :OpenHarmony-5.0.0.1 136 console.info('the value of the deviceInfo osFullName is :' + osFullNameInfo); 137 138 let majorVersionInfo: number = deviceInfo.majorVersion; 139 // 输出结果:the value of the majorVersion is :5 140 console.info('the value of the deviceInfo majorVersion is :' + majorVersionInfo); 141 142 let seniorVersionInfo: number = deviceInfo.seniorVersion; 143 // 输出结果:the value of the seniorVersion is :0 144 console.info('the value of the deviceInfo seniorVersion is :' + seniorVersionInfo); 145 146 let featureVersionInfo: number = deviceInfo.featureVersion; 147 // 输出结果:the value of the featureVersion is :0 148 console.info('the value of the deviceInfo featureVersion is :' + featureVersionInfo); 149 150 let buildVersionInfo: number = deviceInfo.buildVersion; 151 // 输出结果:the value of the buildVersion is :1 152 console.info('the value of the deviceInfo buildVersion is :' + buildVersionInfo); 153 154 let sdkApiVersionInfo: number = deviceInfo.sdkApiVersion; 155 // 输出结果:the value of the sdkApiVersion is :12 156 console.info('the value of the deviceInfo sdkApiVersion is :' + sdkApiVersionInfo); 157 158 let firstApiVersionInfo: number = deviceInfo.firstApiVersion; 159 // 输出结果:the value of the firstApiVersion is :3 160 console.info('the value of the deviceInfo firstApiVersion is :' + firstApiVersionInfo); 161 162 let versionIdInfo: string = deviceInfo.versionId; 163 // 输出结果:the value of the versionId is :wearable/HUAWEI/HUAWEI/TAS/OpenHarmony-5.0.0.1/TAS-AL00/TAS-AL00/12/default/release:nolog 164 console.info('the value of the deviceInfo versionId is :' + versionIdInfo); 165 166 let buildTypeInfo: string = deviceInfo.buildType; 167 // 输出结果:the value of the buildType is :release:nolog 168 console.info('the value of the deviceInfo buildType is :' + buildTypeInfo); 169 170 let buildUserInfo: string = deviceInfo.buildUser; 171 // 输出结果:the value of the buildUser is :default 172 console.info('the value of the deviceInfo buildUser is :' + buildUserInfo); 173 174 let buildHostInfo: string = deviceInfo.buildHost; 175 // 输出结果:the value of the buildHost is :default 176 console.info('the value of the deviceInfo buildHost is :' + buildHostInfo); 177 178 let buildTimeInfo: string = deviceInfo.buildTime; 179 // 输出结果:the value of the buildTime is :default 180 console.info('the value of the deviceInfo buildTime is :' + buildTimeInfo); 181 182 let buildRootHashInfo: string = deviceInfo.buildRootHash; 183 // 输出结果:the value of the buildRootHash is :default 184 console.info('the value of the deviceInfo buildRootHash is :' + buildRootHashInfo); 185 186 let udid: string = deviceInfo.udid; 187 // 输出结果:the value of the udid is :1234567890 188 console.info('the value of the deviceInfo udid is :' + udid); 189 190 let distributionOSName: string = deviceInfo.distributionOSName 191 // 输出结果:the value of the distributionOSName is :OpenHarmony 192 console.info('the value of the deviceInfo distributionOSName is :' + distributionOSName); 193 194 let distributionOSVersion: string = deviceInfo.distributionOSVersion 195 // 输出结果:the value of the distributionOSVersion is :5.0.0 196 console.info('the value of the deviceInfo distributionOSVersion is :' + distributionOSVersion); 197 198 let distributionOSApiVersion: number = deviceInfo.distributionOSApiVersion 199 // 输出结果:the value of the distributionOSApiVersion is :500001 200 console.info('the value of the deviceInfo distributionOSApiVersion is :' + distributionOSApiVersion); 201 202 let distributionOSApiName: string = deviceInfo.distributionOSApiName 203 console.info('the value of the deviceInfo distributionOSApiName is :' + distributionOSApiName); 204 205 let distributionOSReleaseType: string = deviceInfo.distributionOSReleaseType 206 // 输出结果:the value of the distributionOSReleaseType is :Release 207 console.info('the value of the deviceInfo distributionOSReleaseType is :' + distributionOSReleaseType); 208 209 let odid: string = deviceInfo.ODID; 210 // 输出结果:the value of the ODID is :1234a567-XXXX-XXXX-XXXX-XXXXXXXXXXXX 211 console.info('the value of the deviceInfo odid is :' + odid); 212 213 let diskSN: string = deviceInfo.diskSN; 214 // 输出结果:the value of the deviceInfo diskSN is :2502EM400567 215 console.info('the value of the deviceInfo diskSN is :' + diskSN); 216 217``` 218