HarmonyOS 如何獲取裝置資訊(系統、版本、網路連線狀態)

Swift社区發表於2024-11-08

前言

HarmonyOS 提供了一個強大的 API 集,方便開發者獲取裝置的硬體和軟體資訊。透過 @kit.BasicServicesKit 模組的 deviceInfo 介面,開發者可以訪問裝置的型號、品牌、系統版本等詳細資訊。本文將詳細介紹如何使用這些介面獲取裝置資訊,並提供一個完整的 Demo 示例程式碼。

一、引入模組和基本裝置資訊的獲取

首先,引入 @kit.BasicServicesKit 模組,然後透過 deviceInfo 介面獲取裝置的基本資訊。這些資訊包括裝置型別、製造商、品牌等。以下是獲取裝置基本資訊的程式碼示例:

import { deviceInfo } from '@kit.BasicServicesKit';

// 獲取裝置型別
let deviceTypeInfo: string = deviceInfo.deviceType;
console.info('Device Type: ' + deviceTypeInfo);

// 獲取裝置製造商資訊
let manufactureInfo: string = deviceInfo.manufacture;
console.info('Manufacture: ' + manufactureInfo);

// 獲取品牌資訊
let brandInfo: string = deviceInfo.brand;
console.info('Brand: ' + brandInfo);

// 獲取市場名稱
let marketNameInfo: string = deviceInfo.marketName;
console.info('Market Name: ' + marketNameInfo);

二、裝置硬體和系統版本資訊的獲取

HarmonyOS 提供了詳細的硬體和系統版本資訊,包括裝置系列、硬體型號、軟體版本、OS 版本等。這些資訊有助於開發者根據裝置的特性做出最佳化適配。以下是獲取裝置硬體和系統版本資訊的程式碼示例:

// 獲取裝置系列
let productSeriesInfo: string = deviceInfo.productSeries;
console.info('Product Series: ' + productSeriesInfo);

// 獲取產品型號
let productModelInfo: string = deviceInfo.productModel;
console.info('Product Model: ' + productModelInfo);

// 獲取系統顯示版本
let displayVersionInfo: string = deviceInfo.displayVersion;
console.info('Display Version: ' + displayVersionInfo);

// 獲取增量版本
let incrementalVersionInfo: string = deviceInfo.incrementalVersion;
console.info('Incremental Version: ' + incrementalVersionInfo);

// 獲取 OS 全名
let osFullNameInfo: string = deviceInfo.osFullName;
console.info('OS Full Name: ' + osFullNameInfo);

三、獲取安全相關的裝置資訊

在某些應用場景中,瞭解裝置的安全補丁和系統版本資訊是非常重要的。HarmonyOS 提供了安全補丁標籤、引導載入程式版本等資訊,便於開發者確保應用執行在安全的裝置環境上。

// 獲取安全補丁標籤
let securityPatchTagInfo: string = deviceInfo.securityPatchTag;
console.info('Security Patch Tag: ' + securityPatchTagInfo);

// 獲取引導載入程式版本
let bootloaderVersionInfo: string = deviceInfo.bootloaderVersion;
console.info('Bootloader Version: ' + bootloaderVersionInfo);

四、獲取網路狀態資訊

裝置的網路狀態對於某些功能的實現至關重要。HarmonyOS 提供了介面幫助開發者判斷裝置是否連線到網路。以下是獲取當前網路狀態的示例程式碼:

import { network } from '@kit.NetworkKit';

function checkNetworkConnection() {
    let isNetworkConnected: boolean = network.isConnected;
    console.info('Network Connected: ' + isNetworkConnected);
}
checkNetworkConnection();

五、完整 Demo 程式碼

我們利用 HarmonyOS 提供的 deviceInfonetwork 兩個模組,來獲取裝置的基礎資訊、系統版本資訊和網路連線狀態。以下是 Demo 的詳細解釋。

1. 匯入所需模組

首先,我們需要引入兩個模組:

  • @kit.BasicServicesKit 提供了 deviceInfo 物件,用於訪問裝置的基本資訊,如裝置型別、製造商、品牌、系統版本等。
  • @kit.NetworkKit 提供了 network 物件,用於檢測當前裝置的網路連線狀態。
import { deviceInfo } from '@kit.BasicServicesKit';
import { network } from '@kit.NetworkKit';

2. 獲取裝置基本資訊

getDeviceInfo 函式用於獲取和輸出裝置的各種資訊,包括型別、製造商、品牌、系統版本等。

程式碼解析

  • deviceInfo.deviceType: 獲取裝置的型別,如手機、平板等。
  • deviceInfo.manufacture: 獲取裝置的製造商名稱。
  • deviceInfo.brand: 獲取裝置的品牌,如華為。
  • deviceInfo.marketName: 獲取裝置在市場上的商品名稱。
function getDeviceInfo() {
    console.info('--- Device Information ---');
    console.info('Device Type: ' + deviceInfo.deviceType);
    console.info('Manufacture: ' + deviceInfo.manufacture);
    console.info('Brand: ' + deviceInfo.brand);
    console.info('Market Name: ' + deviceInfo.marketName);

示例輸出:

Device Type: Phone
Manufacture: Huawei
Brand: HUAWEI
Market Name: P50 Pro
  • deviceInfo.productSeries: 獲取裝置的系列資訊,例如 P 系列、Mate 系列等。
  • deviceInfo.productModel: 獲取裝置的產品型號。
  • deviceInfo.displayVersion: 獲取裝置的顯示版本,這個資訊通常用來表示作業系統的整體版本。
  • deviceInfo.incrementalVersion: 獲取增量版本,用於區別小版本更新。
  • deviceInfo.osFullName: 獲取作業系統的完整名稱。
    console.info('Product Series: ' + deviceInfo.productSeries);
    console.info('Product Model: ' + deviceInfo.productModel);
    console.info('Display Version: ' + deviceInfo.displayVersion);
    console.info('Incremental Version: ' + deviceInfo.incrementalVersion);
    console.info('OS Full Name: ' + deviceInfo.osFullName);

示例輸出:

Product Series: P Series
Product Model: P50
Display Version: HarmonyOS 3.0
Incremental Version: 123456
OS Full Name: HarmonyOS
  • deviceInfo.securityPatchTag: 獲取裝置的安全補丁標籤,用於瞭解裝置的安全更新狀態。
  • deviceInfo.bootloaderVersion: 獲取引導載入程式版本,用於裝置的啟動和安全相關的操作。
    console.info('Security Patch Tag: ' + deviceInfo.securityPatchTag);
    console.info('Bootloader Version: ' + deviceInfo.bootloaderVersion);
}

示例輸出:

Security Patch Tag: 2024-09-01
Bootloader Version: V1.0.0

3. 檢測網路連線狀態

checkNetworkConnection 函式用於檢測裝置的網路連線狀態。透過 network.isConnected 屬性,判斷裝置是否已連線到網路,返回一個布林值,true 表示連線,false 表示未連線。

function checkNetworkConnection() {
    console.info('--- Network Connection Status ---');
    let isNetworkConnected: boolean = network.isConnected;
    console.info('Network Connected: ' + isNetworkConnected);
}

示例輸出:

Network Connected: true

4. 執行函式

最後,呼叫 getDeviceInfocheckNetworkConnection 函式來輸出裝置資訊和網路狀態:

getDeviceInfo();
checkNetworkConnection();

總結

本文展示瞭如何在 HarmonyOS 中獲取裝置的詳細資訊,包括裝置型別、品牌、系列、產品型號、系統版本以及網路連線狀態。HarmonyOS 提供的 deviceInfonetwork 模組使得裝置資訊和網路狀態的獲取變得簡便。在實際開發中,這些資訊對於裝置的適配、功能的最佳化以及安全檢查都至關重要。

透過這些介面,開發者可以動態地瞭解裝置的特性和當前網路狀態,從而實現更智慧化、個性化的應用體驗。

相關文章