上篇贴出获取设备Id的代码以及使用,今天直接贴出工具类,获取到的信息可以有 当前手机系统语言,当前手机系统版本号,手机型号厂商 ,手机IMEI,全局唯一UUID等信息。
public class SystemUtil {
/**
* 获取当前手机系统语言。
*
* @return 返回当前系统语言。例如:当前设置的是“中文-中国”,则返回“zh-CN”
*/
public static String getSystemLanguage() {
return Locale.getDefault().getLanguage();
}
/**
* 获取当前系统上的语言列表(Locale列表)
*
* @return 语言列表
*/
public static Locale[] getSystemLanguageList() {
return Locale.getAvailableLocales();
}
/**
* 获取当前手机系统版本号
*
* @return 系统版本号
*/
public static String getSystemVersion() {
return android.os.Build.VERSION.RELEASE;
}
/**
* 获取手机型号
*
* @return 手机型号
*/
public static String getSystemModel() {
return android.os.Build.MODEL;
}
/**
* 获取手机厂商
*
* @return 手机厂商
*/
public static String getDeviceBrand() {
return android.os.Build.BRAND;
}
/**
* 获取手机IMEI(需要“android.permission.READ_PHONE_STATE”权限)
*
* @return 手机IMEI
*/
@SuppressLint("MissingPermission")
public static String getIMEI() {
TelephonyManager tm = (TelephonyManager) Utils.getContext().getSystemService(Activity.TELEPHONY_SERVICE);
if (tm != null) {
return tm.getDeviceId();
}
return null;
}
/**
* 获取App版本号
*
* @return App版本号
*/
public static String getAppVersionName() {
return getAppVersionName(Utils.getContext().getPackageName());
}
/**
* 获取App版本号
*
* @return App版本号
*/
public static int getAppVersionNumber() {
return getAppVersionNumber(Utils.getContext().getPackageName());
}
/**
* 获取App版本号
*
* @param packageName 包名
* @return App版本号
*/
public static String getAppVersionName(String packageName) {
if (isSpace(packageName)) return null;
try {
PackageManager pm = Utils.getContext().getPackageManager();
PackageInfo pi = pm.getPackageInfo(packageName, 0);
return pi == null ? null : pi.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return null;
}
}
/**
* 获取App版本号
*
* @param packageName 包名
* @return App版本号
*/
public static int getAppVersionNumber(String packageName) {
if (isSpace(packageName)) return 1;
try {
PackageManager pm = Utils.getContext().getPackageManager();
PackageInfo pi = pm.getPackageInfo(packageName, 0);
return pi == null ? 1 : pi.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return 1;
}
}
public static final String getAndroidID() {
String m_szAndroidID = Settings.Secure.getString(Utils.getContext().getContentResolver(), Settings.Secure.ANDROID_ID);
if (m_szAndroidID == null) {
return getUUID();
} else {
return m_szAndroidID;
}
}
/**
* 得到全局唯一UUID
*/
public static String getUUID() {
String uuid = Preference.getStringPreferences(Utils.getContext(), "uuid", "");
if (TextUtils.isEmpty(uuid)) {
uuid = UUID.randomUUID().toString();
Preference.saveStringPreferences(Utils.getContext(), "uuid", uuid);
}
return uuid;
}
private static boolean isSpace(String s) {
if (s == null) return true;
for (int i = 0, len = s.length(); i < len; ++i) {
if (!Character.isWhitespace(s.charAt(i))) {
return false;
}
}
return true;
}
}