2016-08-31 3 views
2

私のアプリケーションでは、デバイスimeiを使用して、その結果ベースを返します。私は、電話のimeiを検証するための任意の解決策を見つけることができません、ユーザーはGenymotionなどのエミュレータを使用することができます、私のアプリは、それを検出する必要がありますユーザーがエミュレータを使用している場合、私はimeiを検証する方法は?AndroidチェックデバイスIMEIが有効です

PHP細かい作業でこのソリューションは、私はアンドロイド

function is_luhn($n) { 
    $str = ''; 
    foreach (str_split(strrev((string) $n)) as $i => $d) { 
     $str .= $i %2 !== 0 ? $d * 2 : $d; 
    } 
    return array_sum(str_split($str)) % 10 === 0; 
} 
function is_imei($n){ 
    return is_luhn($n) && strlen($n) == 15; 
} 
+0

あなたはIMEIを与えるエミュレータですか? – Amy

+0

@Amyはい、いくつかのエミュレータは、おそらく '000000000000000'またはnull –

答えて

3

用のJava上のこのお試しくださいとのような等価で見つけることができません。

public boolean isValidImei(String s){ 
     long n = Long.parseLong(s); 
     int l = s.length(); 

     if(l!=15) // If length is not 15 then IMEI is Invalid 
      return false; 
     else 
     { 
      int d = 0, sum = 0; 
      for(int i=15; i>=1; i--) 
      { 
       d = (int)(n%10); 

       if(i%2 == 0) 
       { 
        d = 2*d; // Doubling every alternate digit 
       } 

       sum = sum + sumDig(d); // Finding sum of the digits 

       n = n/10; 
      } 

      System.out.println("Output : Sum = "+sum); 

      if(sum%10==0 && sum!=0) 
       return true; 
      else 
       return false; 
     } 
} 

sumDig機能を

int sumDig(int n) // Function for finding and returning sum of digits of a number 
{ 
    int a = 0; 
    while(n>0) 
    { 
     a = a + n%10; 
     n = n/10; 
    } 
    return a; 
} 
+0

whats' n'と 'op'を返しますか? –

関連する問題