赞
踩
在Android开发中有时需要获取设备信息,一般可以通过ADB命令来获取设备build.prop文件中记录的设备信息,有时也需要在代码中获取这些信息,如下介绍两种可以使用的方法,获取设备相关信息。
在Android系统中有一个类似Windows系统注册表的文件build.prop。这个文件内定义了系统初始(或永久)的一些参数属性、功能的开放等。通过调整/增加参数可以达到较调系统性能偏重点和附加功能开启的作用。
因此,如果需要获取设备信息,如设备名称、型号、默认分辨率等都可以从这个文件中读取;
ADB,即 Android Debug Bridge,可以通过一些命令来控制Android手机,因此通过adb命令来获取设备信息的方式是十分方便的。
一下为一些常用的设备信息:
[查看设备信息]
[型号]
[电池状况]
[屏幕分辨率]
[屏幕密度]
[显示屏参数]
[android_id]
[IMEI]
[Android 系统版本]
[IP 地址]
[Mac 地址]
[CPU 信息]
[内存信息]
[更多硬件与系统属性]
adb命令如下:adb shell getprop,这个命令可以获取build.prop中的所有信息,如果需要获取其中的指定信息,可以在后面加上需要获取的id(姑且这个称呼),如:
adb shell getprop ro.product.model 设备名称
adb shell wm size 屏幕分辨率
adb shell wm density 屏幕密度
adb shell getprop ro.build.version.release Android系统版本
还有很多信息,可以参考adb shell getprop的输出来找;
最近一个项目需要在库中获取设备名称,用于判断是否为目标设备,从而控制该库是否可以运行,这时就需要在代码中获取设备信息,可以考虑如下方法:
// An highlighted block
static bool isDeviceNameOK(){
char deviceName[PROP_VALUE_MAX];
__system_property_get("ro.product.name", deviceName);
LOGD("isDeviceNameOK: devices name is %s", deviceName);
char targetDeviceName[] = "DeviceName";
int ret = strcmp(targetDeviceName, deviceName);
LOGD("isDeviceNameOK: strcmp ret = %d", ret);
if(0 == ret){
return true;
}else{
return false;
}
}
isDeviceNameOK函数用于判断目前设备名称与目标设备是否一致,其中targetDeviceName为目标设备名字,__system_property_get为Linux下获取设备信息的方法,"ro.product.name"即为设备名称id(姑且这么称呼);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。