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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/473616.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6笔记

ES6 ECMAScript ECMA组织:脚本语言标准化国际组织 1.什么是ES6 ES的全称是:ECMAScript,它是ECMA国际标准化组织制定的一项脚本语言的标准规范 2015年6月:ES2015 2016年6月:ES2016 2017年6月:ES2017 2018年…

常用命令之LinuxOracleHivePython

1. 用户改密 passwd app_adm chage -l app_adm passwd -x 90 app_adm -> 执行操作后,app_adm用户的密码时间改为90天有效期--查看该euser用户过期信息使用chage命令 --chage的参数包括 ---m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 ---M 密码…

游戏如何应对内存修改

据观察,近年来游戏黑灰产攻击角度多样化趋势显著,主要面临工作室、定制注入挂、模拟点击挂、内存修改挂、破解版等多方面安全问题。 据FairGuard数据统计,在游戏面临的众多安全风险中,「内存修改」攻击占比约为13%,主…

STM32单片机设计防儿童人员误锁/滞留车内警报系统

目录 目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 近年来在车辆逐渐普及的情况下,由于家长的疏忽,将…

华为欧拉系统使用U盘制作引导安装华为欧拉操作系统

今天记录一下通过U盘来安装华为欧拉操作系统 华为欧拉操作系统是国产的一个类似于Centos的Linus系统 具体实现操作步骤: 先在官网下载欧拉系统镜像点击跳转到下载 准备好一个大于16g的U盘 ,用于制作U盘启动 下载一个引导程序制作工具,我使用…

Excel单元格中自适应填充多图

实例需求:在Excel插入图片时,由于图片尺寸各不相同,如果希望多个图片填充指定单元格,依靠用户手工调整,不仅费时费力,而且很难实现完全填充。如下图中的产品图册,有三个图片,如下图所…

51单片机应用开发---LCD1602显示应用

实现目标 1、了解LCD1602液晶屏; 2、掌握驱动程序的编写; 3. 具体目标:在屏幕上显示字符。 一、LCD1206概述 1.1 定义 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置…

问题分析与解决:Android开机卡动画问题分析

1. 问题背景及描述 在一个android设备的开发的项目中遇到了一个比较典型的问题:在主板贴片完成后,首次刷入androdi固件验证时,遇到了按键出发开机后,系统启动到android动画界阶段时一直循环卡在此阶段,无法进入桌面。如下如所示: 此问题在许多android项目的首次点亮阶段均…

nfs服务器--RHCE

一,简介 NFS(Network File System,网络文件系统)是FreeBSD支持的文件系统中的一种,它允许网络中的计 算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系…

黑马智慧商城项目学习笔记

目录 智慧商城项目创建项目调整初始化目录vant组件库vant按需导入和全部导入 项目中的vw适配路由设计配置登录页静态布局图形验证码功能request模块-axios封装api模块-封装图片验证码接口 Toast轻提示(vant组件)短信验证倒计时功能登录功能响应拦截器统一…

MySQL中将一个字符串字段按层级树状展开

水善利万物而不争,处众人之所恶,故几于道💦 文章目录 需求1.分析2.实现3.思路刨析表结构和数据 需求 数据库中有个字段如下 如何将其转换为如下形式: 1.分析 1.他的层级个数是不确定的,也就是说有的有2层有的有5…

IDEA优雅debug

目录 引言一、断点分类🎄1.1 行断点1.2 方法断点1.3 属性断点1.4 异常断点1.5 条件断点1.6 源断点1.7 多线程断点1.8 Stream断点 二、调试动作✨三、Debug高级技巧🎉3.1 watch3.2 设置变量3.3 异常抛出3.4 监控JVM堆大小3.5 数组过滤和筛选 引言 使用ID…

springboot基于Web足球青训俱乐部管理后台系统开发(代码+数据库+LW)

摘 要 随着社会经济的快速发展,人们对足球俱乐部的需求日益增加,加快了足球健身俱乐部的发展,足球俱乐部管理工作日益繁忙,传统的管理方式已经无法满足足球俱乐部管理需求,因此,为了提高足球俱乐部管理效率…

STM32保护内部FLASH

在实际发布的产品中,在STM32芯片的内部FLASH存储了控制程序,如果不作任何保护措施的话,可以使用下载器直接把内部FLASH的内容读取回来,得到bin或hex文件格式的代码拷贝,别有用心的厂商即可利用该代码文件山寨产品。为此…

树的直径计算:算法详解与实现

树的直径计算:算法详解与实现 1. 引言2. 算法概述3. 伪代码实现4. C语言实现5. 算法分析6. 结论在图论中,树的直径是一个关键概念,它表示树中任意两点间最长路径的长度。对于给定的树T=(V,E),其中V是顶点集,E是边集,树的直径定义为所有顶点对(u,v)之间最短路径的最大值。…

无人机场景 - 目标检测数据集 - 车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:无人机场景车辆检测数据集,真实场景高质量图片数据,涉及场景丰富,比如无人机场景城市道路行驶车辆图片、无人机场景城市道边停车车辆图片、无人机场景停车场车辆图片、无人机场景小区车辆图片、无人机场景车辆遮挡、车…

爬虫——Requests库的使用

在爬虫开发中,HTTP请求是与服务器进行交互的关键操作。通过发送HTTP请求,爬虫可以获取目标网页或接口的数据,而有效地处理请求和响应是爬虫能够高效且稳定运行的基础。Requests库作为Python中最常用的HTTP请求库,因其简洁、易用和…

基于python Django的boss直聘数据采集与分析预测系统,爬虫可以在线采集,实时动态显示爬取数据,预测基于技能匹配的预测模型

本系统是基于Python Django框架构建的“Boss直聘”数据采集与分析预测系统,旨在通过技能匹配的方式对招聘信息进行分析与预测,帮助求职者根据自身技能找到最合适的职位,同时为招聘方提供更精准的候选人推荐。系统的核心预测模型基于职位需求技…

pytest | 框架的简单使用

这里写目录标题 单个文件测试方法执行测试套件的子集测试名称的子字符串根据应用的标记进行选择 其他常见的测试命令 pytest框架的使用示例 pytest将运行当前目录及其子目录中test_*.py或 *_test.py 形式的所有 文件 文件内的函数名称可以test* 或者test_* 开头 单个文件测试…

杰控通过 OPCproxy 获取数据发送到服务器

把数据从 杰控 取出来发到服务器 前提你在杰控中已经有变量了(wincc 也适用) 打开你的opcproxy 软件包 opcvarFile 添加变量 写文件就写到 了 opcproxy.ini中 这个文件里就是会读取到的数据 然后 opcproxy.exe发送到桌面快捷方式再考回来 &#…