和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、获取手机基本信息(厂商、型号等参数)
二、设备信息获取实现图
三、获取手机设备 宽、高、IMEI 信息
四、获取手机厂商名、产品名、手机品牌、手机型号、主板名、设备名
五、获取手机硬件名、SDK版本、android版本 、语言支持、默认语言
六、获取 SD 卡存储信息
七、获取手机 RAM、ROM存储信息
八、DeviceInfoUtils 封装类
九、SDCardUtils 封装类
下面将讲解以上信息的获取方法。
一、 获取手机基本信息(厂商、型号等参数)
以小米手机为例,手机常用的基本信息可以在Settings
--> About Phone
中看到,
例如下图:
小米手机设备信息图
那么如何获取这些设备信息呢? Android
中 通常通过 android.os.Build
类方法可以获取更多手机设备信息。
二、 设备信息获取实现图
获取手机IMEI、宽、高、是否有SD卡,RAM、ROM、SD卡、是否联网、网络类型
默认语言,设备名,型号、厂商、Fingerprint、Android 版本、SDK版本、Google 安全patch、发布时间、版本类型、用户名
产品名、ID、产品名、主板名
三、 获取手机设备 宽、高、IMEI 信息方法
获取手机宽、高、IMEI
信息方法如下:
/**
* 获取设备宽度(px)
*
*/
public static int getDeviceWidth(Context context) {
return context.getResources().getDisplayMetrics().widthPixels;
}
/**
* 获取设备高度(px)
*/
public static int getDeviceHeight(Context context) {
return context.getResources().getDisplayMetrics().heightPixels;
}
/**
* 获取设备的唯一标识, 需要 “android.permission.READ_Phone_STATE”权限
*/
public static String getIMEI(Context context) {
TelephonyManager tm = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = tm.getDeviceId();
if (deviceId == null) {
return "UnKnown";
} else {
return deviceId;
}
}
注意:获取IMEI
需要获取手机状态权限
<!-- 读取手机IMEI的设备权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
如果是Android 6.0
之后的代码请使用动态申请权限的方法申请权限,否认会报安全异常的错误SecurityException
,进而导致运行报错。
如需了解更多 系统安全权限的内容,请看 之前写的文章 Android 系统权限使用详解
四、 获取手机厂商名、产品名、手机品牌、手机型号、主板名、设备名的方法
获取手机厂商名、产品名、手机品牌、手机型号、主板名、设备名的方法如下:
/**
* 获取厂商名
* **/
public static String getDeviceManufacturer() {
return android.os.Build.MANUFACTURER;
}
/**
* 获取产品名
* **/
public static String getDeviceProduct() {
return android.os.Build.PRODUCT;
}
/**
* 获取手机品牌
*/
public static String getDeviceBrand() {
return android.os.Build.BRAND;
}
/**
* 获取手机型号
*/
public static String getDeviceModel() {
return android.os.Build.MODEL;
}
/**
* 获取手机主板名
*/
public static String getDeviceBoard() {
return android.os.Build.BOARD;
}
/**
* 设备名
* **/
public static String getDeviceDevice() {
return android.os.Build.DEVICE;
}
/**
*
*
* fingerprit 信息
* **/
public static String getDeviceFubgerprint() {
return android.os.Build.FINGERPRINT;
}
五、 获取手机硬件名、SDK版本、android版本 、语言支持、默认语言等方法
获取手机硬件名、SDK版本
、android版本
、语言支持、默认语言等方法如下:
/**
* 硬件名
*
* **/
public static String getDeviceHardware() {
return android.os.Build.HARDWARE;
}
/**
* 主机
*
* **/
public static String getDeviceHost() {
return android.os.Build.HOST;
}
/**
*
* 显示ID
* **/
public static String getDeviceDisplay() {
return android.os.Build.DISPLAY;
}
/**
* ID
*
* **/
public static String getDeviceId() {
return android.os.Build.ID;
}
/**
* 获取手机用户名
*
* **/
public static String getDeviceUser() {
return android.os.Build.USER;
}
/**
* 获取手机 硬件序列号
* **/
public static String getDeviceSerial() {
return android.os.Build.SERIAL;
}
/**
* 获取手机Android 系统SDK
*
* @return
*/
public static int getDeviceSDK() {
return android.os.Build.VERSION.SDK_INT;
}
/**
* 获取手机Android 版本
*
* @return
*/
public static String getDeviceAndroidVersion() {
return android.os.Build.VERSION.RELEASE;
}
/**
* 获取当前手机系统语言。
*/
public static String getDeviceDefaultLanguage() {
return Locale.getDefault().getLanguage();
}
/**
* 获取当前系统上的语言列表(Locale列表)
*/
public static String getDeviceSupportLanguage() {
Log.e("wangjie", "Local:" + Locale.GERMAN);
Log.e("wangjie", "Local:" + Locale.ENGLISH);
Log.e("wangjie", "Local:" + Locale.US);
Log.e("wangjie", "Local:" + Locale.CHINESE);
Log.e("wangjie", "Local:" + Locale.TAIWAN);
Log.e("wangjie", "Local:" + Locale.FRANCE);
Log.e("wangjie", "Local:" + Locale.FRENCH);
Log.e("wangjie", "Local:" + Locale.GERMANY);
Log.e("wangjie", "Local:" + Locale.ITALIAN);
Log.e("wangjie", "Local:" + Locale.JAPAN);
Log.e("wangjie", "Local:" + Locale.JAPANESE);
return Locale.getAvailableLocales().toString();
}