You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 10及以上版本如何校验IMEI号码并获取布尔校验结果

Android 10及以上版本IMEI校验方案
  • 首先明确系统能力边界:Android 10(API 29)开始系统收紧了硬件标识符权限,非系统特权应用、无运营商特殊权限的普通第三方App,既无法通过公开API读取设备真实IMEI,也不存在系统提供的公开机制可以直接校验输入IMEI与设备真实IMEI是否匹配,自然拿不到系统返回的这类匹配校验布尔值。
  • 如果你的需求是校验用户输入的IMEI字符串本身是否符合IMEI合法编码规范,完全可以自行实现标准校验逻辑,最终返回true/false类型的布尔结果。

IMEI的固定编码规则为15位纯数字,最后1位是通过Luhn(模10)算法计算得到的校验位,直接按规则实现校验即可,可直接参考以下实现代码:

fun isValidImei(input: String?): Boolean {
    // 基础格式校验:非空、15位长度、全数字
    if (input.isNullOrBlank() || input.length != 15) return false
    if (!input.all { it.isDigit() }) return false

    var checkSum = 0
    for (index in input.indices) {
        var num = input[index].digitToInt()
        // 奇数索引位(从0计数,对应从左数偶数位)数值乘2
        if (index % 2 == 1) {
            num *= 2
            if (num > 9) num -= 9
        }
        checkSum += num
    }
    // 校验和被10整除即为符合规则的IMEI格式
    return checkSum % 10 == 0
}

注意:上述逻辑仅能校验输入字符串是否符合IMEI编码规则,无法验证该IMEI是否为某台设备的真实标识,也无法绕过Android 10+的系统权限限制获取设备真实IMEI做匹配校验。

内容的提问来源于stack exchange,提问作者sarjeet singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:39:17