1、效果图

鸿蒙手机 --> 关于手机的截图:

Android程序获取鸿蒙手机设备信息的截图:

2、实现

本案例DEMO的实现主要借鉴了网上现有的资料: https://blog.csdn.net/chenzhengfeng/article/details/119868210

并在此基础上进行了扩展、封装,希望能帮到有需要的小伙伴们~

2.1、鸿蒙工具类封装 HarmonyUtils

import android.text.TextUtils;
import java.lang.reflect.Method; /**
* 齐行超
* 2020-02-16
*/
public class HarmonyUtils {
/**
* 是否为鸿蒙系统
*
* @return true为鸿蒙系统
*/
public static boolean isHarmonyOs() {
try {
Class<?> buildExClass = Class.forName("com.huawei.system.BuildEx");
Object osBrand = buildExClass.getMethod("getOsBrand").invoke(buildExClass);
return "Harmony".equalsIgnoreCase(osBrand.toString());
} catch (Throwable x) {
return false;
}
} /**
* 获取鸿蒙系统版本号
*
* @return 版本号
*/
public static String getHarmonyVersion() {
return getProp("hw_sc.build.platform.version", "");
} /**
* 获取属性
* @param property
* @param defaultValue
* @return
*/
private static String getProp(String property, String defaultValue) {
try {
Class spClz = Class.forName("android.os.SystemProperties");
Method method = spClz.getDeclaredMethod("get", String.class);
String value = (String) method.invoke(spClz, property);
if (TextUtils.isEmpty(value)) {
return defaultValue;
}
return value;
} catch (Throwable e) {
e.printStackTrace();
}
return defaultValue;
} /**
* 获得鸿蒙系统版本号(含小版本号,实际上同Android的android.os.Build.DISPLAY)
* @return 版本号
*/
public static String getHarmonyDisplayVersion() {
return android.os.Build.DISPLAY;
}
}

2.2、HarmonyUtils的调用

当前案例中,在一个activity中实现了对HarmonyUtils工具类的调用。

Activity代码:


import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle;
import android.widget.TextView; public class HarmonyActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_harmony); TextView tv_is_harmony = findViewById(R.id.tv_is_harmony);
TextView tv_harmony_version = findViewById(R.id.tv_harmony_version);
TextView tv_harmony_display_version = findViewById(R.id.tv_harmony_display_version); boolean isHarmony = HarmonyUtils.isHarmonyOs();
tv_is_harmony.setText("is harmony ? \n "+ isHarmony); String harmonyVersion = HarmonyUtils.getHarmonyVersion();
tv_harmony_version.setText("harmony version is: \n "+harmonyVersion); String displayVersion = HarmonyUtils.getHarmonyDisplayVersion();
tv_harmony_display_version.setText("harmony display version is: \n "+displayVersion);
}
}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context=".HarmonyActivity"> <TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="is harmony ?"
android:id="@+id/tv_is_harmony"
android:textSize="20sp"
android:layout_marginTop="20dp"
app:layout_constraintTop_toTopOf="parent"/> <TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/tv_is_harmony"
android:id="@+id/tv_harmony_version"
android:textSize="20sp"
android:layout_marginTop="20dp"
android:text="harmony version"/> <TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/tv_harmony_version"
android:id="@+id/tv_harmony_display_version"
android:textSize="20sp"
android:layout_marginTop="20dp"
android:text="harmony display version"/> </androidx.constraintlayout.widget.ConstraintLayout>

Android程序获取鸿蒙手机设备信息(是否鸿蒙手机、版本号、小版本号等)的更多相关文章

  1. 【转】android 安卓APP获取手机设备信息和手机号码的代码示例

    http://blog.csdn.net/changemyself/article/details/7421476 下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓 ...

  2. android 安卓APP获取手机设备信息和手机号码的代码示例

    下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓手机.手机SIM卡确保插入手机里.eclipse ADT和android-sdk开发环境 第一步:新建一个andro ...

  3. iOS开发-Swift获取手机设备信息(UIDevice)

    使用UiDevice获取设备信息 获取设备名称 let name = UIDevice.currentDevice().name 获取设备系统名称 let systemName = UIDevice. ...

  4. IOS 获取更多的设备信息

    ●  如果想获得更多的设备信息,比如 ●  设备型号.CPU情况.内存使用情况.硬盘使用情况 ●  是否越狱.装了哪些传感器.当前运行的进程 ●  ... ... ●  有2种方法获取更多的设备信息 ...

  5. 小程序开发之获取客户来源 scene 场景值 手机设备信息

    为什么要获取客户来源 用作数据分析,根据客户来源,做精准转化! 判断客户来源入口方式 1.通过官方的scene场景值 常见场景值 场景值ID 说明 1001 发现栏小程序主入口,「最近使用」列表 10 ...

  6. java翻译到mono C#实现系列(3) 获取手机设备信息(残缺,)

    using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; ...

  7. ?Object-C获取手机设备信息

    一.获取UiDevice设备信息 // 获取设备名称 NSString *name = [[UIDevice currentDevice] name]; // 获取设备系统名称 NSString *s ...

  8. ?Swift获取手机设备信息

    使用UiDevice获取设备信息: 获取设备名称 let name = UIDevice.currentDevice().name 获取设备系统名称 let systemName = UIDevice ...

  9. iOS开发-Object-C获取手机设备信息(UIDevice)

    一.获取UiDevice设备信息 // 获取设备名称 NSString *name = [[UIDevice currentDevice] name]; // 获取设备系统名称 NSString *s ...

  10. ADB——查看手机设备信息

    查看设备信息 查看手机型号 adb shell getprop ro.product.model 查看电池状况 adb shell dumpsys battery ''' Current Batter ...

随机推荐

  1. [Go] 选择 Beego 的三个理由

    1. 项目支持角度较其它框架考虑的多一些,比如:目录结构的简单约定,内置项目配置读取,内置bee脚手架,热重载特性 等. (实际这些 feature 都可以找到 golang 专精的组件引入起来,效果 ...

  2. WPF 多线程下跨线程处理 ObservableCollection 数据

    本文告诉大家几个不同的方法在 WPF 里,使用多线程修改或创建 ObservableCollection 列表的数据 需要明确的是 WPF 框架下,非 UI 线程直接或间接访问 UI 是不合法的,设计 ...

  3. dotnet C# 多次对一个对象调用构造函数会发生什么

    今天来玩一点变态的,使用反射获取到某个类型的构造函数,接着多次对此类型的某个对象调用构造函数方法.请问此时会发生什么 假定有一个类型 Foo 的定义如下 class Foo : IDisposable ...

  4. 2019-9-2-C#-设计模式-责任链

    title author date CreateTime categories C# 设计模式 责任链 lindexi 2019-09-02 12:57:37 +0800 2018-2-13 17:2 ...

  5. VSCode和PhpStorm配置进行PHP断点调试

    本文环境:php版本:5.4.45 (phpstudy),Xdebug 2.4.1(phpstudy文件夹中自带),phpstorm 2021.3 目录 PHP配置 关于Xdebug 浏览器配置(插件 ...

  6. 十、Doris操作参考手册

    1.SQL参考 1.1  用户账户管理 1.2  集群管理 1.3  DDL 1.4  DML 2.函数参考 2.1  日期函数 2.2  字符串函数 2.3  聚合函数 2.4  Cast转换函数 ...

  7. ide构建SpringMVC框架

    框架原理图如下: 1. 创建如图项目 2. 在lib中所需导入jar包 3. 配置变量 (1) (2)add library (3)选择web app libraries 4. 配置web.xml文件 ...

  8. docker 安装nginx 配置目录挂载

    目录 nginx 的安装 运行mynginx容器 设置开机自动启动容器 nginx 的安装 mkdir /usr/local/docker cd /usr/local/docker docker ru ...

  9. 07. C语言程序执行流程控制

    [有条件执行语句] if esle 语句 if else 语句根据一个条件确定是否执行一段代码,执行条件是一个布尔值,布尔值为true则执行,为false则不执行,同时可以设置不符合条件时执行的语句. ...

  10. AIRIOT物联网低代码平台如何配置OPC DA驱动?

    AIRIOT物联网低代码平台提供了丰富的驱动,兼容了市面上95%以上的传感器.控制器及数据采集设备等,并且在持续增加中,能够快速.便捷地实现数据采集与控制功能. AIRIOT物联网低代码平台如何配置O ...