Android获取制作商,系统版本等信息

在开发中 我们有时候会需要获取当前手机的系统版本来进行判断,或者需要获取一些当前手机的硬件信息。

android.os.Build类中。包括了这样的一些信息。我们可以直接调用 而不需要添加任何的权限和方法。


android.os.Build.BOARD:获取设备基板名称

android.os.Build.BOOTLOADER:获取设备引导程序版本号

android.os.Build.BRAND:获取设备品牌

android.os.Build.CPU_ABI:获取设备指令集名称(CPU的类型)

android.os.Build.CPU_ABI2:获取第二个指令集名称

android.os.Build.DEVICE:获取设备驱动名称

android.os.Build.DISPLAY:获取设备显示的版本包(在系统设置中显示为版本号)和ID一样

android.os.Build.FINGERPRINT:设备的唯一标识。由设备的多个信息拼接合成。

android.os.Build.HARDWARE:设备硬件名称,一般和基板名称一样(BOARD)

android.os.Build.HOST:设备主机地址

android.os.Build.ID:设备版本号。

android.os.Build.MODEL :获取手机的型号 设备名称。

android.os.Build.MANUFACTURER:获取设备制造商

android:os.Build.PRODUCT:整个产品的名称

android:os.Build.RADIO:无线电固件版本号,通常是不可用的 显示unknown

android.os.Build.TAGS:设备标签。如release-keys 或测试的 test-keys 

android.os.Build.TIME:时间

android.os.Build.TYPE:设备版本类型  主要为"user" 或"eng".

android.os.Build.USER:设备用户名 基本上都为android-build

android.os.Build.VERSION.RELEASE:获取系统版本字符串。如4.1.2 或2.2 或2.3等

android.os.Build.VERSION.CODENAME:设备当前的系统开发代号,一般使用REL代替

android.os.Build.VERSION.INCREMENTAL:系统源代码控制值,一个数字或者git hash值

android.os.Build.VERSION.SDK:系统的API级别 一般使用下面大的SDK_INT 来查看

android.os.Build.VERSION.SDK_INT:系统的API级别 数字表示


android.os.Build.VERSION_CODES类 中有所有的已公布的Android版本号。全部是Int常亮。可用于与SDK_INT进行比较来判断当前的系统版本

//BOARD 主板
String phoneInfo = "BOARD: " + android.os.Build.BOARD;
phoneInfo += ", BOOTLOADER: " + android.os.Build.BOOTLOADER;
//BRAND 运营商
phoneInfo += ", BRAND: " + android.os.Build.BRAND;
phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI;
phoneInfo += ", CPU_ABI2: " + android.os.Build.CPU_ABI2;
//DEVICE 驱动
phoneInfo += ", DEVICE: " + android.os.Build.DEVICE;
//DISPLAY 显示
phoneInfo += ", DISPLAY: " + android.os.Build.DISPLAY;
//指纹
phoneInfo += ", FINGERPRINT: " + android.os.Build.FINGERPRINT;
//HARDWARE 硬件
phoneInfo += ", HARDWARE: " + android.os.Build.HARDWARE;
phoneInfo += ", HOST: " + android.os.Build.HOST;
phoneInfo += ", ID: " + android.os.Build.ID;
//MANUFACTURER 生产厂家
phoneInfo += ", MANUFACTURER: " + android.os.Build.MANUFACTURER;
//MODEL 机型
phoneInfo += ", MODEL: " + android.os.Build.MODEL;
phoneInfo += ", PRODUCT: " + android.os.Build.PRODUCT;
phoneInfo += ", RADIO: " + android.os.Build.RADIO;
phoneInfo += ", RADITAGSO: " + android.os.Build.TAGS;
phoneInfo += ", TIME: " + android.os.Build.TIME;
phoneInfo += ", TYPE: " + android.os.Build.TYPE;
phoneInfo += ", USER: " + android.os.Build.USER;
//VERSION.RELEASE 固件版本
phoneInfo += ", VERSION.RELEASE: " + android.os.Build.VERSION.RELEASE;
phoneInfo += ", VERSION.CODENAME: " + android.os.Build.VERSION.CODENAME;
//VERSION.INCREMENTAL 基带版本
phoneInfo += ", VERSION.INCREMENTAL: " + android.os.Build.VERSION.INCREMENTAL;
//VERSION.SDK SDK版本
phoneInfo += ", VERSION.SDK: " + android.os.Build.VERSION.SDK;
phoneInfo += ", VERSION.SDK_INT: " + android.os.Build.VERSION.SDK_INT

七、公共方法:

public static String getRadioVersion() 获取无线电固件版本

八、测试示例:

代码如下:

 /**
     * 获取指定字段信息
     * @return
     */
    private String getDeviceInfo(){
        StringBuffer sb =new StringBuffer();
        sb.append("主板:"+Build.BOARD);
        sb.append("\n系统启动程序版本号:"+ Build.BOOTLOADER);
        sb.append("\n系统定制商:"+Build.BRAND);
        sb.append("\ncpu指令集:"+Build.CPU_ABI);
        sb.append("\ncpu指令集2:"+Build.CPU_ABI2);
        sb.append("\n设置参数:"+Build.DEVICE);
        sb.append("\n显示屏参数:"+Build.DISPLAY);
        sb.append("\n无线电固件版本:"+Build.getRadioVersion());
        sb.append("\n硬件识别码:"+Build.FINGERPRINT);
        sb.append("\n硬件名称:"+Build.HARDWARE);
        sb.append("\nHOST:"+Build.HOST);
        sb.append("\n修订版本列表:"+Build.ID);
        sb.append("\n硬件制造商:"+Build.MANUFACTURER);
        sb.append("\n版本:"+Build.MODEL);
        sb.append("\n硬件序列号:"+Build.SERIAL);
        sb.append("\n手机制造商:"+Build.PRODUCT);
        sb.append("\n描述Build的标签:"+Build.TAGS);
        sb.append("\nTIME:"+Build.TIME);
        sb.append("\nbuilder类型:"+Build.TYPE);
        sb.append("\nUSER:"+Build.USER);
        return sb.toString();
    }
    /**
     * 通过反射获取所有的字段信息
     * @return
     */
    public String getDeviceInfo2(){
        StringBuilder sbBuilder = new StringBuilder();
        Field[] fields = Build.class.getDeclaredFields();
        for(Field field:fields){
            field.setAccessible(true);
            try {
                sbBuilder.append("\n"+field.getName()+":"+field.get(null).toString());
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        return sbBuilder.toString();
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值