Android10版本之后如何验证IMEI号码?
创始人
2024-08-20 08:00:06
0

在Android 10版本之后,使用getDeviceId()方法来获取IMEI号码已被标记为不安全的调用。因此,推荐使用新的方法来验证IMEI号码。

以下是一个使用TelephonyManager类获取IMEI号码并进行验证的示例代码:

private boolean isValidIMEI(String imei) {
    if (imei == null || imei.length() != 15) {
        //不是有效的IMEI号码
        return false;
    }

    int sum = 0;
    for (int i = 0; i < 15; i++) {
        int digit = Integer.parseInt(imei.substring(i, i + 1));
        if (i % 2 == 0) {
            digit *= 2;
            sum += digit > 9 ? digit - 9 : digit;
        } else {
            sum += digit;
        }
    }
    return sum % 10 == 0;
}

public String getIMEI() {
    String imei = null;
    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    if (telephonyManager != null) {
        imei = telephonyManager.getImei();
    }

    if (!isValidIMEI(imei)) {
        //不是有效的IMEI号码
        return null;
    }
    return imei;
}

在上面的示例中,我们首先使用TelephonyManager类获取IMEI号码,然后使用isValidIMEI()方法对其进行验证。如果IMEI号码无效,则返回null。否则,getIMEI()方法将返回有效的IMEI号码。

需要注意的是,我们仍然可以使用getDeviceId()来获取IMEI号码,但需要声明READ_PRIVILEGED_PHONE_STATE权限,并且只在可以证明必须使用它的情况下使用它。

相关内容

热门资讯

7分钟了解!青龙大厅牛牛透视辅... 7分钟了解!青龙大厅牛牛透视辅助,吉祥棋牌填大坑科技有挂吗,力荐教程(有挂总结)1、下载好吉祥棋牌填...
三分钟了解!中州游戏有挂吗,网... 三分钟了解!中州游戏有挂吗,网易棋牌数据透视,爆料教程(有挂透视)1)网易棋牌数据透视辅助挂:进一步...
6分钟了解!中至吉安小程序有挂... 6分钟了解!中至吉安小程序有挂吗,熊猫麻将跑得快有挂没,实用技巧(有挂方法);1、打开软件启动之后找...
9分钟了解!大晋游戏的外 挂,... 9分钟了解!大晋游戏的外 挂,心悦海南,揭秘攻略(有挂辅助)1、每一步都需要思考,不同水平的挑战会更...
4分钟了解!兴动棋牌看牌,西兵... 4分钟了解!兴动棋牌看牌,西兵互娱辅助是真是假,必胜教程(有挂方法)1、首先打开西兵互娱辅助是真是假...
三分钟了解!蜀州游戏麻将有挂没... 三分钟了解!蜀州游戏麻将有挂没,畅享徐州麻将神器,微扑克教程(有挂方法)蜀州游戏麻将有挂没是一种具有...
四分钟了解!六瓣数字消字牌外 ... 四分钟了解!六瓣数字消字牌外 挂,天天仙桃麻将有挂,可靠教程(有挂方法)六瓣数字消字牌外 挂是一种具...
9分钟了解!桂林字牌辅助器,老... 9分钟了解!桂林字牌辅助器,老友十三张有辅助挂吗,可靠教程(有挂脚本);老友十三张有辅助挂吗辅助器中...
8分钟了解!jj斗地主助赢神器... 8分钟了解!jj斗地主助赢神器,金州水鱼免费辅助软件,必胜教程(有挂教学);1、任何金州水鱼免费辅助...
4分钟了解!同城游510k有挂... 4分钟了解!同城游510k有挂吗,同乡游戏有挂吗,高科技教程(有挂解说)1、同城游510k有挂吗透视...