手机IMEI等相关的一些信息获取
2019-08-28 本文已影响0人
涂涂家的小七呀
public String getPhoneState() {
try {
//TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
//@SuppressLint("MissingPermission") String IMEIs = tm.getDeviceId();//获取设备IMEI
String phoneName = android.os.Build.MODEL;//获取手机名称
int phoneSDK = Build.VERSION.SDK_INT;//获取系统SDK版本号
String phoneVersion = android.os.Build.VERSION.RELEASE;//获取手机系统版本号
return phoneName + "," + phoneSDK + "," + phoneVersion;
} catch (Exception e) {
e.printStackTrace();
LogLogs.logSave(SettingStorageModel.id, 3, "PhoneState--getPhoneState()", "获取手机信息", Arrays.toString(e.getStackTrace()));
return null;
}
}
//获取手机系统运营商
public String getProvidersName(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String ProvidersName;
// 返回唯一的用户ID;就是这张卡的编号
@SuppressLint({"MissingPermission", "HardwareIds"}) String IMSI = Objects.requireNonNull(telephonyManager).getSubscriberId();
// IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
if (IMSI != null) {
if (IMSI.startsWith("46000") || IMSI.startsWith("46002") || IMSI.startsWith("46007") || IMSI.startsWith("41004")) {
ProvidersName = "移动 " + getNetworkType(telephonyManager.getNetworkType());
} else if (IMSI.startsWith("46001") || IMSI.startsWith("46006")) {
ProvidersName = "联通 " + getNetworkType(telephonyManager.getNetworkType());
} else if (IMSI.startsWith("46003") || IMSI.startsWith("46005") || IMSI.startsWith("46011")) {
ProvidersName = "电信 " + getNetworkType(telephonyManager.getNetworkType());
} else {
ProvidersName = "未知 " + getNetworkType(telephonyManager.getNetworkType());
}
} else {
ProvidersName = "未知 " + getNetworkType(telephonyManager.getNetworkType());
}
return ProvidersName;
}
//获取手机网络类型
private String getNetworkType(int networkType) {
// TODO Auto-generated method stub
switch (networkType) {
case TelephonyManager.NETWORK_TYPE_1xRTT:
return "1xRTT";
case TelephonyManager.NETWORK_TYPE_CDMA:
return "CDMA";
case TelephonyManager.NETWORK_TYPE_EDGE:
return "EDGE";
case TelephonyManager.NETWORK_TYPE_EHRPD:
return "EHRPD";
case TelephonyManager.NETWORK_TYPE_EVDO_0:
return "EVDO_0";
case TelephonyManager.NETWORK_TYPE_EVDO_A:
return "EVDO_A";
case TelephonyManager.NETWORK_TYPE_EVDO_B:
return "EVDO_B";
case TelephonyManager.NETWORK_TYPE_GPRS:
return "GPRS";
case TelephonyManager.NETWORK_TYPE_HSDPA:
return "HSDPA";
case TelephonyManager.NETWORK_TYPE_HSPA:
return "HSPA";
case TelephonyManager.NETWORK_TYPE_HSPAP:
return "HSPAP";
case TelephonyManager.NETWORK_TYPE_HSUPA:
return "HSUPA";
case TelephonyManager.NETWORK_TYPE_IDEN:
return "IDEN";
case TelephonyManager.NETWORK_TYPE_LTE:
return "LTE";
case TelephonyManager.NETWORK_TYPE_UMTS:
return "UMTS";
case TelephonyManager.NETWORK_TYPE_UNKNOWN:
return "UNKNOWN";
default:
return "UNKNOWN";
}
}
/**
* 获取手机IMEI号
*/
@SuppressLint({"MissingPermission", "HardwareIds"})
public static String getIMEI(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
return telephonyManager != null ? telephonyManager.getDeviceId() : null;
}