区分小米MIUI,魅族FLYME,华为EMUI,其他OTHER

1、获取系统属性

public class BuildProperties {private static BuildProperties ourInstance;private Properties properties;public static BuildProperties getInstance() throws IOException {if (ourInstance == null) {ourInstance = new BuildProperties();}return ourInstance;}private BuildProperties() throws IOException {properties = new Properties();properties.load(new FileInputStream(new File(Environment.getRootDirectory(), "build.prop")));}public boolean containsKey(final Object key) {return properties.containsKey(key);}public boolean containsValue(final Object value) {return properties.containsValue(value);}public String getProperty(final String name) {return properties.getProperty(name);}public String getProperty(final String name, final String defaultValue) {return properties.getProperty(name, defaultValue);}public Set<Map.Entry<Object, Object>> entrySet() {return properties.entrySet();}public boolean isEmpty() {return properties.isEmpty();}public Enumeration keys() {return properties.keys();}public Set keySet() {return properties.keySet();}public int size() {return properties.size();}public Collection values() {return properties.values();}}

2、获取系统标识

public class OSUtils {//MIUI标识private static final String KEY_MIUI_VERSION_CODE = "ro.miui.ui.version.code";private static final String KEY_MIUI_VERSION_NAME = "ro.miui.ui.version.name";private static final String KEY_MIUI_INTERNAL_STORAGE = "ro.miui.internal.storage";//EMUI标识private static final String KEY_EMUI_VERSION_CODE = "ro.build.version.emui";private static final String KEY_EMUI_API_LEVEL = "ro.build.hw_emui_api_level";private static final String KEY_EMUI_CONFIG_HW_SYS_VERSION = "ro.confg.hw_systemversion";//Flyme标识private static final String KEY_FLYME_ID_FALG_KEY = "ro.build.display.id";private static final String KEY_FLYME_ID_FALG_VALUE_KEYWORD = "Flyme";private static final String KEY_FLYME_ICON_FALG = "persist.sys.use.flyme.icon";private static final String KEY_FLYME_SETUP_FALG = "ro.meizu.setupwizard.flyme";private static final String KEY_FLYME_PUBLISH_FALG = "ro.flyme.published";/*** @param* @return ROM_TYPE ROM类型的枚举* @description获取ROM类型: MIUI_ROM, FLYME_ROM, EMUI_ROM, OTHER_ROM*/public static ROM_TYPE getRomType() {ROM_TYPE rom_type = ROM_TYPE.OTHER;try {BuildProperties buildProperties = BuildProperties.getInstance();if (buildProperties.containsKey(KEY_EMUI_VERSION_CODE) || buildProperties.containsKey(KEY_EMUI_API_LEVEL) || buildProperties.containsKey(KEY_MIUI_INTERNAL_STORAGE)) {return ROM_TYPE.EMUI;}if (buildProperties.containsKey(KEY_MIUI_VERSION_CODE) || buildProperties.containsKey(KEY_MIUI_VERSION_NAME) || buildProperties.containsKey(KEY_MIUI_VERSION_NAME)) {return ROM_TYPE.MIUI;}if (buildProperties.containsKey(KEY_FLYME_ICON_FALG) || buildProperties.containsKey(KEY_FLYME_SETUP_FALG) || buildProperties.containsKey(KEY_FLYME_PUBLISH_FALG)) {return ROM_TYPE.FLYME;}if (buildProperties.containsKey(KEY_FLYME_ID_FALG_KEY)) {String romName = buildProperties.getProperty(KEY_FLYME_ID_FALG_KEY);if (!TextUtils.isEmpty(romName) && romName.contains(KEY_FLYME_ID_FALG_VALUE_KEYWORD)) {return ROM_TYPE.FLYME;}}} catch (IOException e) {e.printStackTrace();}return rom_type;}public enum ROM_TYPE {MIUI,FLYME,EMUI,OTHER}
}

3、调用

Log.d("Build_Value", OSUtils.getRomType().name());

打印结果

09-27 09:28:35.068 5257-5257/com.hy.pushtest D/Build_Value: MIUI

Android获取操作系统名称相关推荐

  1. java主类与源代码名称_java 获取操作系统名称 附源代码

    记得刚入手 在写跨平台代码的时候,有一些操作是与平台有关的,这个时候,准确地了解软件是在哪个平台下进行工作就显得非常重要了,知道了软件在哪种类型的操作系统下工作,分别编写不同的代码,就可以让整个软件地 ...

  2. 程序通过命令行获取操作系统名称+版本+CPU名称等各种信息

    文章目录 (一)命令行取得信息 (1.1)Windows (1.1.1)操作系统名称版本 (1.1.2)CPU名称 (1.2)Linux (1.2.1)操作系统名称版本 (1.2.2)CPU名称 (1 ...

  3. Android 获取手机名称

    1. 需求 获取框中的手机名称,注意这里与其他文章不一样的地方,这个手机名称可以修改,并且会作用于蓝牙以及热点等功能. 2. 问题分析 首先查阅了网上关于获取手机名称或者设备名称的解决方案,一般包括两 ...

  4. android获取包版本,Android获取应用名称、版本号、应用包名称,移动设备ID、MAC地址、基站信息和手机型号等详细信...

    创建一个android应用(AndroidTest),所需权限如下(AndroidManifest.xml文件): 接下来是MainActivity.java文件: package com.examp ...

  5. Android获取WiFi名称/路由器AP地址总结

    前言 谷歌有一点点的蛋疼,没想到定位也需要加上版本的判断了,再此总结下定位权限以及WiFi AP SSID的获取. 安卓9.0定位权限 安卓系统在9.0之后如果不开启手机的GPS服务功能,应用即使已经 ...

  6. android 获取渠道,Android 获取渠道名称

    直接看代码, //获取渠道名称public static String getChannelName(Activity ctx) { if (ctx == null) { return null; } ...

  7. android获取程序名称,Android获取应用程序名称(ApplicationName)示例

    MainActivity如下: 代码如下: package cn.testapplicationname; import android.os.Bundle; import android.widge ...

  8. android获取apk名称_apk瘦身;如何缩小体积呢?这篇文章来教你

    转载请声明出处! 前言 我们完成一个app后,都需要生成一个apk,然后上线,而apk的大小也一定程度的影响了用户是否愿意下载你的这个app,所以也就有了apk瘦身这门艺术. 目录 apk的结构图片压 ...

  9. android获取apk名称_安卓逆向——APK安装流程

    制丨文生 整理丨阿星 很多学习安卓逆向的朋友大多都会卡在安卓apk上,今天小生就来给大家讲解一下,安装apk的流程,希望能帮助到大家. 安装方式: ⑴系统程序安装 ⑵通过Android市场安装 ⑶手机 ...

最新文章

  1. 联手马斯克创立神秘组织,他正改写人类与AI的未来
  2. Pytorch离线安装的纯净版
  3. boost::contract模块实现check宏的测试程序
  4. [JTA] Java事务api
  5. 不同平台上安装python是一样的吗_python3 在不同操作系统安装第三方库方法
  6. mysql008where.or.in查询
  7. Linux 应用---make及makefile的编写
  8. 电商购物网站 - 需求与设计
  9. 2021-08-02 INSERT INTO插入语句
  10. 极客大学产品经理训练营 产品思维和产品意识(下) 第5课总结
  11. QC3.0充电器快充诱骗方法,做个笔记
  12. 这几款高格调的app,让你的人生妖艳起来!
  13. Android 拨号盘应用源码分析
  14. 详解Decorator模式和vistor模式
  15. 基于go语言搭建高性能IM系统
  16. 什么决定你的江湖地位
  17. Code review是个数学问题:从二向箔说起
  18. 【21天算法学习】折半插入排序
  19. 【AtCoder】【模拟】【模型转化】Camel and Oases(AGC012)
  20. 学无止境的CSS(xHTML+CSS技巧教程资源大全)

热门文章

  1. SAP的用户出口(User Exits)
  2. webmagic 获取文本_webmagic爬取博客园所有文章
  3. 基于kfaka和zookeeper的nginx日志收集平台,项目详细步骤
  4. 为什么区块链账本不可篡改?
  5. 全控整流 MATLAB Simulink 全控整流,电阻负载,电阻电感负载
  6. OWASP API SECURITY TOP 10
  7. 利用全连接神经网络对车辆进行识别
  8. 关于ASP.NET编程中,GridView表格无法执行RenderControl()方法的问题
  9. Android 图形之 Surface 和 SurfaceHolder
  10. 计算机网络默认网关怎么看,默认网关怎么查看 查看电脑默认网关的方法介绍...