首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Android检查设备IMEI有效

Android检查设备IMEI有效
EN

Stack Overflow用户
提问于 2016-08-31 07:56:18
回答 1查看 1.8K关注 0票数 3

在我的应用程序中,我们使用device imei并根据它返回一些结果。我找不到任何解决方案来验证手机imei,用户可以使用一些模拟器,如Genymotion,我的应用程序必须被检测到,如果用户正在使用模拟器,我必须不发布数据到服务器,我如何验证imei?

这个解决方案在PHP上运行良好,但我找不到与之类似的java for android解决方案

代码语言:javascript
运行
AI代码解释
复制
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;
} 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 08:03:02

试试这个:

代码语言:javascript
运行
AI代码解释
复制
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函数

代码语言:javascript
运行
AI代码解释
复制
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;
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39243837

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文