TelephonyManager.getDeiceId()
은 IMEI 번호의 14 자리 만 반환합니다. 하지만 설정 -> 전화 -> 상태에서 15 자리가 표시됩니다.TelephonyManager.getDeviceId는 14 자리 숫자 만 반환합니다.
전화 설정에 표시되는 15 자리를 가져오고 싶습니다.
TelephonyManager.getDeiceId()
은 IMEI 번호의 14 자리 만 반환합니다. 하지만 설정 -> 전화 -> 상태에서 15 자리가 표시됩니다.TelephonyManager.getDeviceId는 14 자리 숫자 만 반환합니다.
전화 설정에 표시되는 15 자리를 가져오고 싶습니다.
IMEI (14 자리)는 검사 숫자로 보완됩니다. 수표 숫자는 IMEI 수표에 전송 된 숫자 중 부분이 아닙니다. 체크 디지트는 과 같이 수동 전송 오류를 방지해야합니다. 고객이 도난당한 휴대폰을 운영자의 고객 지원 센터에 등록하면
http://www.tele-servizi.com/Janus/texts/imei.txt
http://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity
수표 번호를 얻거나 계산하는 방법은 무엇입니까? – Sali
심각하게? 링크를 읽어야합니까? len http://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity#Check_digit_computation –
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyMgr.getDeviceId()
이 내가 수행하고 난 모든 15 개 자리가이 U 도움을 줄 수 있습니다 얻는 것입니다 ...
또는 당신은 할 수 수동으로 14 자리 IMEI 번호의 체크섬을 계산하십시오. 예 :
private int GetCheckSumDigit(String id) {
int digit = -1;
try{
if(id.length() == 14)
{
String str = "";
char[] digits = new char[id.length()];
id.getChars(0, id.length(), digits, 0);
for(int i=0; i<digits.length; i++)
{
String ch = digits[i]+"";
if((i+1)%2==0)
{
int x = Integer.parseInt(digits[i]+"");
x *= 2;
ch = x+"";
}
str += ch;
}
digits = new char[str.length()];
str.getChars(0, str.length(), digits, 0);
int total = 0;
for(int i=0; i<str.length(); i++)
total += Integer.parseInt(digits[i]+"");
//
int count = 0;
while((total+count)%10 != 0)
count++;
digit = count;
}
}catch(Exception exx)
{
exx.printStackTrace();
}
return digit;
}
행운을 비네.
일부 장치가 마지막 숫자를 추가하지 마십시오, 우리는 대신 Luhn algorithm를 사용하여 마지막 숫자를 계산해야 : 당신은 무엇을
private int getImeiCheckDigit(String imei14digits) {
if (imei14digits == null || imei14digits.length() != 14) {
throw new IllegalArgumentException("IMEI should be 14 digits");
}
int[] imeiArray = new int[imei14digits.length()];
final int DIVIDER = 10;
char[] chars = imei14digits.toCharArray();
for (int i = 0; i < chars.length; i++) {
imeiArray[i] = Character.getNumericValue(chars[i]);
}
int sum = 0;
for (int i = 0; i < imeiArray.length; i++) {
if (i % 2 == 0) {
sum += imeiArray[i];
} else {
int multi = imeiArray[i] * 2;
if (multi >= DIVIDER) {
sum += multi % DIVIDER;
sum += multi/DIVIDER;
} else {
sum += multi;
}
}
}
return (DIVIDER - sum % DIVIDER) % DIVIDER;
}
를 시도? android.telephony.TelephonyManager.getDeviceId() ??? – confucius
예 TelephonyManager.getDeiceId() 만 시도했습니다 – Sali