当前位置: 首页 > news >正文

HarmonyOS 如何获取设备信息(系统、版本、网络连接状态)

在这里插入图片描述

在这里插入图片描述

文章目录

    • 前言
    • 一、引入模块和基本设备信息的获取
    • 二、设备硬件和系统版本信息的获取
    • 三、获取安全相关的设备信息
    • 四、获取网络状态信息
    • 五、完整 Demo 代码
      • 1. 导入所需模块
      • 2. 获取设备基本信息
        • 代码解析
      • 3. 检测网络连接状态
      • 4. 执行函数
    • 总结

前言

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 模块使得设备信息和网络状态的获取变得简便。在实际开发中,这些信息对于设备的适配、功能的优化以及安全检查都至关重要。

通过这些接口,开发者可以动态地了解设备的特性和当前网络状态,从而实现更智能化、个性化的应用体验。

相关文章:

HarmonyOS 如何获取设备信息(系统、版本、网络连接状态)

文章目录 前言一、引入模块和基本设备信息的获取二、设备硬件和系统版本信息的获取三、获取安全相关的设备信息四、获取网络状态信息五、完整 Demo 代码1. 导入所需模块2. 获取设备基本信息代码解析 3. 检测网络连接状态4. 执行函数 总结 前言 HarmonyOS 提供了一个强大的 API…...

2411rust,1.80

1.80.0稳定版 LazyCell和LazyLock 这些"懒"类型会延迟初化其数据,直到第一次访问.它们类似1.70中稳定的OnceCell和OnceLock类型,但单元中包含初化函数. 这稳定化了从流行的lazy_static和once_cell中进入标准库. LazyLock是线安选项,使其适合静态值等位置.如,产生…...

FPGA 第6讲 简单组合逻辑多路选择器

时间:2024.11.11-11.14 一、学习内容 1.组合逻辑 组合逻辑是VerilgHDL设计中一个重要组成部分。从电路本质上讲,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关,无存储电路,也没…...

Android Studio开发学习(五)———LinearLayout(线性布局)

一、布局 认识了解一下Android中的布局,分别是: LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局), FrameLayout(帧布局),AbsoluteLayout(绝对布局),GridLayout(网格布局) 等。 二、…...

大模型(LLMs)RAG 版面分析------文本分块面

一、为什么需要对文本分块? 使用大型语言模型(LLM)时,切勿忽略文本分块的重要性,其对处理结果的好坏有重大影响。 考虑以下场景:你面临一个几百页的文档,其中充满了文字,你希望对其…...

Web3游戏先锋 Big Time Studios 重磅推出 $OL 通证,赋能 Open Loot 游戏平台

作为 Web3 游戏领域的领军者,Big Time Studios 不仅创造了热门游戏《Big Time》,还开发了 Open Loot 平台,至今交易量已超过 5 亿美元。如今,Open Loot 平台的活跃用户可以获得 $OL 代币,这是该平台推出的首个实用型代…...

Linux—ln(link files)命令使用方法(How to create links on Linux)

Linux—ln(link files)命令使用方法 在 Linux 系统中工作时,需要在不同的目录中使用相同的文件时,不必在每个目录下都复制一份文件,这样不仅浪费磁盘空间,还会导致文件管理上的混乱。 ln(link files) 便是…...

学习日记_20241110_聚类方法(K-Means)

前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…...

解决Oracle DECODE函数字符串截断问题的深度剖析20241113

解决Oracle DECODE函数字符串截断问题的深度剖析 在使用Oracle数据库进行开发时,开发者可能会遇到一些令人困惑的问题。其中,在使用DECODE函数时,返回的字符串被截断就是一个典型的案例。本文将以学生管理系统为背景,深入探讨这个…...

开源模型应用落地-语音转文本-whisper模型-AIGC应用探索(二)

一、前言 语音转文本技术具有重要价值。它能提高信息记录和处理的效率,使人们可以快速将语音内容转换为可编辑、可存储的文本形式,方便后续查阅和分析。在教育领域,可帮助学生更好地记录课堂重点;在办公场景中,能简化会议记录工作。同时,该技术也为残障人士提供了便利,让…...

PHP框架 单一入口和多入口以及优缺点

在PHP框架中,单一入口和多入口是两种不同的应用架构设计方式,以下是关于这两者及其优缺点的详细解释: 一、单一入口 定义: 单一入口(Single Entry Point)指的是应用程序通过一个统一的文件(通…...

PhpSpreadsheet导出图片

PhpSpreadsheet导出图片 //导出public function pdf($ids){$jzInfo $this->model->where(id,$ids)->find();try {//巡检人员$staff_ids \app\admin\model\inspection\Plan::where(id,$jzInfo[plan_id])->value(staff_id);$staff_names \app\admin\model\inspect…...

AI 提示词(Prompt)入门 十:最佳实践|详细询问,提供细节!

1、原则解释 当与 ChatGPT 交流时,提供具体和详细的信息非常重要。 这样做可以帮助 ChatGPT 更准确地理解你的需求和上下文,从而生成更相关和有用的回答 明确的信息可以包括具体的问题背景、相关领域的说明、你所期望的答案类型等。 2、如何实践 明…...

web应用安全和信息泄露预防

文章目录 1:spring actuator导致的信息泄露1.1、Endpoint配置启用检测1.2、信息泄露复现1.3、防御 2:服务端口的合理使用3:弱口令(密码)管理4:服务端攻击4.1、短信业务,文件上传等资源型接口1、…...

《人工智能深度学习的基本路线图》

《人工智能深度学习的基本路线图》 基础准备阶段 数学基础: 线性代数:深度学习中大量涉及矩阵运算、向量空间等概念,线性代数是理解和处理这些的基础。例如,神经网络中的权重矩阵、输入向量的运算等都依赖于线性代数知识。学习内容…...

基于Java Springboot宠物猫售卖管理系统

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据库:…...

力扣-Hot100-链表其三【算法学习day.36】

前言 ###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴&am…...

iOS逆向入门:使用theos注入第三方依赖库

背景 theos是一个跨平台的软件开发框架,常用于管理,开发和部署iOS项目,同时也是开发iOS越狱插件的主要工具。和MonkeyDev不同的是,它不依赖于xcode,可以在多个操作系统上运行。一个完整的iOS越狱开发流程包括&#xf…...

JavaScript 原型

JavaScript 的原型(Prototype)是其面向对象编程模型的核心概念之一,它决定了对象如何继承属性和方法。通过理解 JavaScript 的原型,你可以更好地理解对象之间的关系以及如何扩展对象功能。 核心概念 [[Prototype]](内部…...

力扣 LeetCode 20. 有效的括号(Day5:栈与队列)

解题思路: 使用栈 只有三种情况 1. ( [ { } ] ( ( 左括号多了 -> 最后栈中经过抵消会剩下括号 2. [ { ( ] } ] 括号不匹配 -> return false 3. [ { } ] ( ) ) ) 右括号多了 -> 未遍历完时,栈提前为空,…...

git使用及上线流程(仅为我工作中常用)

推荐软件或者直接终端 ⚠️注意:在确保远程和本地分支都可使用的情况下 git常见使用命令 ls---查看所有目录 pwd---本机密码 cd 目录名---进入目录 Touch ---创建文本文件 git status---查看状态 git branch---查看分支 git pull---拉取远程最新代码 git checkou…...

React Native 全栈开发实战班 - 打包发布之热更新

在完成 React Native 应用的开发与性能优化后,下一步就是将应用打包并发布到各大应用市场,如 Apple App Store 和 Google Play Store。本章节已经详细介绍了打包与发布的流程,包括 Android 和 iOS 平台的配置、打包步骤、签名配置以及发布到应…...

2024年11月16日 星期六 重新整理Go技术

今日格言 坚持每天进步一点点~ 一个人也可以是一个团队~ 学习全栈开发, 做自己喜欢的产品~~ 简介 大家好, 我是张大鹏, 今天是2024年11月16日星期六, 很高兴在这里给大家分享技术. 今天又是休息的一天, 做了很多的思考, 整理了自己掌握的技术, 比如Java, Python, Golang,…...

力扣第 55 题 跳跃游戏

力扣第 55 题 跳跃游戏(Jump Game)。题目要求判断一个非负整数数组中,是否能够从第一个位置跳跃到最后一个位置。每个元素表示从当前位置最多可以跳跃的步数。 解题思路 我们可以用 贪心算法 来解决这个问题。贪心的核心思想是始终维护当前…...

Golang | Leetcode Golang题解之第564题寻找最近的回文数

题目: 题解: func nearestPalindromic(n string) string {m : len(n)candidates : []int{int(math.Pow10(m-1)) - 1, int(math.Pow10(m)) 1}selfPrefix, _ : strconv.Atoi(n[:(m1)/2])for _, x : range []int{selfPrefix - 1, selfPrefix, selfPrefix …...

Spring Boot汽车资讯:科技与速度的交响

3系统分析 3.1可行性分析 通过对本汽车资讯网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本汽车资讯网站采用SSM框架,JAVA作为开发语言&#…...

从 IDC 到云原生:稳定性提升 100%,成本下降 50%,热联集团的数字化转型与未来展望

作者:金峰(项良)、朱永林、赵世振(寰奕) 公司简介 杭州热联集团股份有限公司成立于 1997 年 10 月,是隶属杭州市实业投资集团的国有控股公司。公司专业从事国际、国内钢铁贸易黑色大宗商品及产业服务&…...

移动零

移动零 1、题目描述2、解答思路 1、题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 2、解答思路 已知数组后端若干元素为0&…...

C#编写的日志记录组件 - 开源研究系列文章

以前编写过一个日志记录组件的博文,这次发布一个修改过的完善版本。 1、 项目目录; 2、 源码介绍; 1) 实现; 2) 使用; 后面的参数为级别设置,只有大于这个级别的才进行日志记录,限制了日志记录的…...

猎板PCB罗杰斯板材的应用案例

以下是几个猎板 PCB 与罗杰斯板材结合的具体案例: 案例一:5G 通信基站天线 PCB 在 5G 通信基站的天线系统中,对高频信号的传输和处理要求极高。猎板 PCB 采用罗杰斯板材,凭借其稳定的低介电常数(如 RO4003C 板材&…...

网站建设与管理心得体会/百度推广账号怎么申请

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。Python爬虫、数据分析、网站开发等案例教程视频免费在线观看https://space.bilibili.com/523606542基本开发环境Python 3.6Pycharm相关模块的使用import requests斗鱼直…...

现在用什么做网站/流氓网站

目录一、目标检测概述1.1 项目演示介绍1.2 图片识别背景1.3 目标检测定义二、目标检测算法原理2.1 任务描述2.2 目标检测算法必备基础2.3目标检测算法模型输出目标检测 -overfeat模型R-CNN模型候选区域特征提取非极大抑制 (NMS)修正候选区域R-CNN的训练过…...

wordpress4.7.4伪静态/故事型软文广告

要是还没有安装Tomcat 服务器 可以点击此 http://tomcat.apache.org/download-60.cgi链接 在官网下载Tomcat服务器. 具体安装方法 这里不做介绍. 在安装好Tomcat之后 接着来就来配置 在桌面建立一个文件夹取名Test(也可以建立在其他的硬盘上)在Test文件下建立WEB-INF文件夹(这…...

邢台网站设计厂家/深圳seo网络优化公司

本章主要根据对vue cli 3的简单理解,和vue-cli 2进行简单的对比;整理比较简单 首先从文档介绍看,两者就有巨大的区别vue cli 3vue cli 2一个基于 Vue.js 进行快速开发的完整系统用于搭建 Vue.js 项目的简单CLI版本2,只提供了基于「…...

wordpress 小插件/推荐几个靠谱的网站

项目中用到了消息对话框,类似于Messagebox,然后我就自定义了个Messagebox,其中用到了label自适应,自动换行,先看效果图吧。 按照下面步骤来来 1 新建一个Form为BasicDialog,form里添加一个label,BasicDialog大小为(440,240) 2 label的autosize为true,MaximumSize为…...

网站开发需要什么技能/百度指数入口

1.概述进程、线程、协程 1.1什么是进程和线程 进程是什么呢? 应用程序运行的本身就是一个进程,比如 玩红警或者打开一个应用软件,我们都可以通过任务管理器查看到。 进程是操作系统结构的基础,是正在运行的程序。 总而言之&#x…...