2
getDeviceId()
은 Verizon 전화에서 14 자리 MEID를 반환합니다 (CDMA 음성 장치이기 때문에). 프로그래밍 방식으로 15 자리 IMEI를 가져올 수 있습니까 (설정 메뉴에 나열된대로)?Verizon (CDMA vioice/LTE Data) 기기에서 IMEI를 얻으려면 어떻게해야합니까?
getDeviceId()
은 Verizon 전화에서 14 자리 MEID를 반환합니다 (CDMA 음성 장치이기 때문에). 프로그래밍 방식으로 15 자리 IMEI를 가져올 수 있습니까 (설정 메뉴에 나열된대로)?Verizon (CDMA vioice/LTE Data) 기기에서 IMEI를 얻으려면 어떻게해야합니까?
면책 조항 :솔루션은 게시되지 않은 API를 사용합니다. 이는 모범 사례를 나타내지 않으므로 의도하지 않은 결과가 발생할 수 있습니다. API가 구현되지 않았거나 변경 될 수 있습니다. 자신의 책임하에 사용하십시오.
리플렉션 및 숨겨진 Android API 호출로이를 수행 할 수있는 방법이 있습니다. TelephonyManager에는 public (그러나 숨겨진) getImei() 메서드가 있습니다. 이상적은 아니지만 다음과 같은 것이 나의 특별한 필요에 부합합니다.
private String getIMEI() throws NoIMEIException {
TelephonyManager mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
try {
Method method = mTelephonyMgr.getClass().getMethod("getImei");
String imei = (String) method.invoke(mTelephonyMgr);
if (imei == null) {
throw new NoIMEIException();
} else {
return imei;
}
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
throw new NoIMEIException();
}
}
실제로 이것은 유일한 도움이되는 안드로이드 5.0 및 6.0을 사용하는 14 자리 IMEI usingTelephonyManager.getDeviceId()입니다. – AndroidCoolestRulest