SuppressLint("MissingPermission")
public static String getIMEI() {
String inner = "\n------\n";
String outer = "\n\n###################\n";
StringBuilder imei = new StringBuilder();
String className = null;
imei
.append("TelephonyManagerEx=\n")
.append(getIMEIFromTm(className="com.mediatek.telephony.TelephonyManagerEx","getDeviceId"))
.append(inner)
.append(getIMEIFromTm(className,"getImei"))
.append(inner)
.append(getIMEIFromTm(className,"getSubscriberId"))
.append(outer)
.append("MSimTelephonyManager=\n")
.append(getIMEIFromTm(className="android.telephony.MSimTelephonyManager","getDeviceId"))
.append(inner)
.append(getIMEIFromTm(className,"getImei"))
.append(inner)
.append(getIMEIFromTm(className,"getSubscriberId"))
.append(outer)
.append("TelephonyManager=\n")
.append(getIMEIFromTm(className="android.telephony.TelephonyManager","getDeviceId"))
.append(inner)
.append(getIMEIFromTm(className,"getImei"))
.append(inner)
.append(getIMEIFromTm(className,"getSubscriberId"))
.append(outer)
.append("Build=\n")
.append(Build.SERIAL)
;
return imei.toString();
}
private static String getIMEIFromTm(String className,String methodName)
{
Object tm = getTM(className);
if(tm == null)
{
return "not found ";
}
Object result;
String imei = "";
try
{
Method method = tm.getClass().getMethod(methodName);
result = method.invoke(tm);
}catch (Exception e)
{
result = e.getClass().getSimpleName();
}
imei += methodName+"():"+result;
if("getDeviceId".equalsIgnoreCase(methodName))
{
try {
Method method = tm.getClass().getMethod(methodName, int.class);
result = method.invoke(tm,0);
} catch (Exception e) {
result =e.getClass().getSimpleName();
}
imei +="\n"+methodName+"(int):"+result;
}
return imei;
}
private static Object getTM(String className)
{
try {
Class v4_6 = Class.forName(className);
Method method = v4_6.getDeclaredMethod("getDefault");
method.setAccessible(true);
return method.invoke(v4_6);
} catch (Exception e) {
return null;
}
}
获取设备信息
猜你喜欢
转载自www.cnblogs.com/boliu/p/9110343.html
今日推荐
周排行