HarmonyOS鸿蒙Next中怎么获取当前设备的设备类型?是手机平板还是智慧屏?
HarmonyOS鸿蒙Next中怎么获取当前设备的设备类型?是手机平板还是智慧屏? 现在鸿蒙里有很多设备类型,怎么精确判断具体的设备类型?

更多关于HarmonyOS鸿蒙Next中怎么获取当前设备的设备类型?是手机平板还是智慧屏?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
解决方案:
使用 deviceInfo.deviceType 来获取设备类型。


为了兼容 api20- 的应用,下面的代码没有使用 DeviceTypes。
import { deviceInfo } from '@kit.BasicServicesKit';
const DEVICE_TYPE = (() => {
switch (deviceInfo.deviceType) {
case 'default':
return '默认设备'
case 'phone':
return '手机'
case 'tablet':
return '平板'
case '2in1':
return 'PC/2in1'
case 'tv':
return '智慧屏'
case 'wearable':
return '智能手表'
case 'car':
return '车机'
default:
return ''
}
})()
完整代码:
import { deviceInfo } from '@kit.BasicServicesKit';
const DEVICE_TYPE = (() => {
switch (deviceInfo.deviceType) {
case 'default':
return '默认设备'
case 'phone':
return '手机'
case 'tablet':
return '平板'
case '2in1':
return 'PC/2in1'
case 'tv':
return '智慧屏'
case 'wearable':
return '智能手表'
case 'car':
return '车机'
default:
return ''
}
})()
@Entry
@ComponentV2
struct Index {
build() {
Column() {
Text() {
if (DEVICE_TYPE) {
Span("设备类型为:")
Span(DEVICE_TYPE)
} else {
Span("未知设备")
}
}
.fontSize(40)
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
}
}
真机演示:

预览器:

更多关于HarmonyOS鸿蒙Next中怎么获取当前设备的设备类型?是手机平板还是智慧屏?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
- 使用 deviceInfo 模块:可以通过 @ohos.deviceInfo 模块来获取设备类型。示例代码如下:
import deviceInfo from '[@ohos](/user/ohos).deviceInfo';
let deviceType = deviceInfo.getDeviceType();
console.log("Current device type: " + deviceType);
在HarmonyOS Next中,使用deviceInfo.deviceType获取设备类型。该属性返回DeviceType枚举值,例如PHONE、TABLET、TV等。
在HarmonyOS Next中,可以通过deviceInfo模块来获取精确的设备类型。
主要步骤如下:
-
导入模块:
import { deviceInfo } from '@kit.DeviceInfoKit'; -
获取设备信息:
let deviceType: deviceInfo.DeviceType = deviceInfo.deviceType; -
判断类型:
deviceInfo.DeviceType是一个枚举,包含了所有设备类型。你可以通过switch或if语句进行判断。关键枚举值示例:
PHONE(0): 手机TABLET(1): 平板TV(7): 智慧屏、电视WEARABLE(8): 智能穿戴CAR(9): 车机SMART_VISION(22): 智能摄像头LITE_WEARABLE(23): 轻智能手表
代码示例:
switch(deviceType) { case deviceInfo.DeviceType.PHONE: console.log('当前设备是手机'); break; case deviceInfo.DeviceType.TABLET: console.log('当前设备是平板'); break; case deviceInfo.DeviceType.TV: console.log('当前设备是智慧屏/电视'); break; // ... 其他设备类型判断 default: console.log('其他类型设备'); }
注意:该方法返回的是设备的物理类型,而非运行应用的设备形态(如手机处于折叠态)。如果需要获取设备形态,需使用display模块的getDefaultDisplaySync().state。
此方法适用于需要根据设备硬件能力进行不同逻辑处理或界面适配的场景。

