android中得Build类包含系统的一些设备信息
要获取系统的设备信息有2中方式可获得
方法一:
private String getDeviceInfo() {
String radio = "";
if(Build.VERSION.SDK_INT>14){
radio = Build.getRadioVersion();
}else{
radio = Build.RADIO;
}
StringBuffer sb = new StringBuffer();
sb.append("主板:" + Build.BOARD);
sb.append("系统启动程序版本号:" + Build.BOOTLOADER);
sb.append("系统定制商:" + Build.BRAND);
sb.append("cpu指令集:" + Build.CPU_ABI);
sb.append("cpu指令集2 " + Build.CPU_ABI2);
sb.append("设置参数: " + Build.DEVICE);
sb.append("显示屏参数: " + Build.DISPLAY);
sb.append("无线电固件版本: " + radio);
sb.append("硬件识别码: " + Build.FINGERPRINT);
sb.append("硬件名称:" + Build.HARDWARE);
sb.append("HOST: " + Build.HOST);
sb.append("修订版本列表:" + Build.ID);
sb.append("硬件制造商:" + Build.MANUFACTURER);
sb.append("版本: " + Build.MODEL);
sb.append("硬件序列号: " + Build.SERIAL);
sb.append("手机制造商:" + Build.PRODUCT);
sb.append("描述Build的标签:" + Build.TAGS);
sb.append("TIME:" + Build.TIME);
sb.append("builder类型:" + Build.TYPE);
sb.append("USER:" + Build.USER);
return sb.toString();
}
因为Build.RADIO在API14之后已经不建议使用了,可以根据手机系统版本号来使用不同的获取方法
方法二:
// 返回Build class所有的字段属性
Field[] fields = Build.class.getDeclaredFields();
for (Field field : fields) {
try {
field.setAccessible(true);
infos.put(field.getName(), field.get(null).toString());
Log.w(TAG, field.getName() + " : " + field.get(null));
} catch (Exception e) {
Log.e(TAG, "an error occured when collect crash info", e);
}
}
获得到的一些信息是:
TIME=1445335867000
FINGERPRINT=Xiaomi/full_lte26007/lte26007:4.4.4/KTU84Q/V7.0.7.0.KHLCNCI:user/release-keys
HARDWARE=leadcoreinnopower
UNKNOWN=unknown
RADIO=unknown
HARDWARE_VERSION=Ver0606
BOARD=2014502
versionCode=2
PRODUCT=full_lte26007
versionName=1.0.2
DISPLAY=KTU84P
USER=builder
HOST=wcc-miui-ota-bd16
DEVICE=lte26007
TAGS=release-keys
MODEL=HM 2A
BOOTLOADER=unknown
CPU_ABI=armeabi-v7a
CPU_ABI2=armeabi
IS_DEBUGGABLE=false
ID=KTU84Q
SERIAL=1L523W099194
MANUFACTURER=Xiaomi
BRAND=Xiaomi
TYPE=user
使用用途,一般一些app都会在上传信息的时候会上传一些设备信息,比如品牌、系统版本
还有一些信息会在程序出异常的时候上传到服务器
以上仅供有需求的参考下