Android采集系统(ROM)类别和版本号。

很多时候我们需要了解用户目前使用的是什么系统,甚至是系统的版本号(比如MIUI V7和V8)来进一步处理业务逻辑,比如打开系统权限设置界面。

感谢国内各大安卓手机/系统厂商,我们安卓开发者每天都很乐意(很受伤)解决这些差异化问题。

通过读取android.os.Build.MANUFACTURER常量,可以获得设备的制造商,从而确定设备使用的系统。

常见制造商常数的对应关系

使用示例:

总结:这种方法通常是有效的,因为我们通常认为小米手机使用MIUI系统,华为手机使用EMUI系统等相关关系,那么可能存在以下几种情况:

当然,如果你还是想获取系统的版本号,也许这个方法有点力不从心。

因此,我们可以通过在文件内容中寻找一些特征来确定系统类别。

在进一步了解build.prop的过程中,我发现了其他人对这部分的具体使用和解释,这里就不做过多阐述了。

他人使用的说明

他人打包的工具

总结:这种方法通常更有效(取决于特征识别的有效性),但比方法1稍微复杂一些。但是,这种方法可能有一个致命的问题,即您可能无法在某些设备上读取build.prop文件。根据网上资料(华为mate10及后续部分新设备无法读取该文件)。

对于以上两种方法,有不同的方式,都有各自的缺点。所以在实际生产环境中,最好根据自己的需求来决定,甚至可以结合两种方法的特点来实现需求。到目前为止,还没有找到其他更有效的方法来获得可以适应所有情况的系统类型和版本。如果有,谢谢你告诉我。我非常感激。

附录:

小米开发文档——如何识别小米设备/MIUI系统,关于开发文档中提到的阅读属性,应该是SystemUtil.java实现的。

更多参考资料:

/xx326664162/article/details/52438706