Android之Build类.(Android获取手机配置信息 )

一、类结构:
java.lang.Object
   ↳ android.os.Build

二、类概述:从系统属性中提取设备硬件和版本信息。

三、内部类:

1、Build.VERSION    各种版本字符串

2、Build.VERSION_CODES    目前已知的版本代码的枚举类

四、常量:UNKNOWN   当一个版本属性不知道时所设定的值。其字符串值为 "unknown" .

五、构造方法: Build ()

六、静态属性

1、BOARD   主板:The name of the underlying board, like "goldfish".

2、BOOTLOADER 系统启动程序版本号:The system bootloader version number.

3、BRAND  系统定制商:The consumer-visible brand with which the product/hardware will be associated, if any.

4、CPU_ABI  cpu指令集:The name of the instruction set (CPU type + ABI convention) of native code.

5、CPU_ABI2 cpu指令集2:The name of the second instruction set (CPU type + ABI convention) of native code.

6、DEVICE 设备参数:The name of the industrial design.

7、DISPLAY  显示屏参数:A build ID string meant for displaying to the user

8、FINGERPRINT   唯一识别码:A string that uniquely identifies this build. Do not attempt to parse this value.

9、HARDWARE   硬件名称:The name of the hardware (from the kernel command line or /proc).

10、HOST

11、ID  修订版本列表:Either a changelist number, or a label like "M4-rc20".

12、MANUFACTURER  硬件制造商:The manufacturer of the product/hardware.

13、MODEL  版本即最终用户可见的名称:The end-user-visible name for the end product.

14、PRODUCT 整个产品的名称:The name of the overall product.

15、RADIO  无线电固件版本:The radio firmware version number.   在API14后已过时。使用 getRadioVersion()代替。

16、SERIAL 硬件序列号:A hardware serial number, if available. Alphanumeric only, case-insensitive.

17、TAGS  描述build的标签,如未签名,debug等等。:Comma-separated tags describing the build, like "unsigned,debug".

18、TIME

19、TYPE build的类型:The type of build, like "user" or "eng".

20、USER

//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();
    }

猜你喜欢

转载自blog.csdn.net/u011652925/article/details/79847495