HarmonyOS鸿蒙Next中怎么获取当前设备的设备类型?是手机平板还是智慧屏?

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

图片


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

4 回复

解决方案:

使用 deviceInfo.deviceType 来获取设备类型。

cke_2422.png

cke_393.png

为了兼容 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)
  }
}

真机演示:

cke_26890.jpeg

预览器:

cke_15940.png

更多关于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枚举值,例如PHONETABLETTV等。

在HarmonyOS Next中,可以通过deviceInfo模块来获取精确的设备类型。

主要步骤如下:

  1. 导入模块

    import { deviceInfo } from '@kit.DeviceInfoKit';
    
  2. 获取设备信息

    let deviceType: deviceInfo.DeviceType = deviceInfo.deviceType;
    
  3. 判断类型deviceInfo.DeviceType 是一个枚举,包含了所有设备类型。你可以通过 switchif 语句进行判断。

    关键枚举值示例

    • 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

此方法适用于需要根据设备硬件能力进行不同逻辑处理或界面适配的场景。

回到顶部