安卓手机出现无效的imei怎么解决?

安卓手机出现无效的imei怎么解决?,第1张

不会有任何问题的,IMEI是手机入网许可证编号(流水号)IMEI只要修改成中国大陆的就可以了!(这个说明你手机是水货哦!不是行货哦!)

它和手机的ISN是有区别的!(isn是为了有利于生产的一个编号)

  可以在手机设置中找到应用,点击权限管理,选择权限开启这个imei功能。

  安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发,Android操作系统最初由Andy Rubin开发,主要支持手机。

  Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等,全世界采用这款系统的设备数量已经达到10亿台。

  Android在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:阿童木(AndroidBeta),发条机器人(Android 10),后来由于涉及到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。

随着android系统不断升级,android设备的imei号已经越来越难获取了。网上一些推荐会用meid、androidid来代替imei号。但是因为项目推广需要比对渠道那边回传imei号来确认新增。

发现部分机型渠道(eg:快手)可以获取到而我们获取不到,导致无法确认新增。最终在TelephonyManager中找到getDeviceSoftwareVersion()方法。可以变相实现获取imei号(但也会有getDeviceSoftwareVersion获取不到的机型,不过验证渠道那边也获取不到了)。

public static String getIMEI() {

TelephonyManager telephonyManager = (TelephonyManager) BaseApplicationgetAppContext()getSystemService(ContextTELEPHONY_SERVICE);

String imei = null;

if (AndPermissionhasPermissions(BaseApplicationgetAppContext(), ManifestpermissionREAD_PHONE_STATE)) {

try {

if (BuildVERSIONSDK_INT >= BuildVERSION_CODESO) {

imei = telephonyManagergetImei();

if (!TextUtilsisEmpty(imei)) {

return imei;

} else {

String softwareVersion = getDeviceSoftwareVersion();

if (!TextUtilsisEmpty(softwareVersion) && softwareVersionlength() > 14) {

String imeiHead = softwareVersionsubstring(0, 14);

imei = imeiHead + luhn(imeiHead);

return imei;

} else {

return null;

}

}

} else {

return telephonyManagergetDeviceId();

}

} catch (Exception e) {

eprintStackTrace();

}

}

return imei;

}

/

Luhn算法

根据号码获取校验位

@param cardNumber

@return

/

public static int luhn(String cardNumber) {

int totalNumber = 0;

for (int i = cardNumberlength() - 1; i >= 0; i -= 2) {

int tmpNumber = calculate(IntegerparseInt(StringvalueOf(cardNumbercharAt(i))) 2);

if (i == 0) {

totalNumber += tmpNumber;

} else {

totalNumber += tmpNumber + IntegerparseInt(StringvalueOf(cardNumbercharAt(i - 1)));

}

其实是因为getDeviceSoftwareVersion和getImei()拼接规则只有末位两个数不相同,而imei的末位数可以通过luhn算法获取,从而拼接成imei值(自测有效)。

但是毕竟还是有部分机型获取不到imei,可以使用oaid来补充说明。

如果是自己app内部做唯一标识的话可以用meid、androidid或deviceid来代替imei

public static String getUniqueId() {

TelephonyManager telephonyManager = (TelephonyManager) BaseApplicationgetAppContext()getSystemService(ContextTELEPHONY_SERVICE);

if (AndPermissionhasPermissions(BaseApplicationgetAppContext(), ManifestpermissionREAD_PHONE_STATE)) {

if (androidosBuildVERSIONSDK_INT >= BuildVERSION_CODESP) {

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/843811.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-11
下一篇2023-08-11

随机推荐

  • 保湿精华凝露和精华液它们用法功效那个好

    保湿精华凝露和精华液,它们都是保养皮肤的好帮手。虽然它们的使用方法和功效各有不同,但都能为肌肤提供所需的水分和营养。我们来看看保湿精华凝露。它通常是以凝露状或者轻薄的乳液质地呈现。使用时,只需取适量轻轻涂抹在清洁的脸部肌肤上即可。保湿精华凝

    2024-04-15
    68300
  • 精华液和水乳的正确使用顺序?

    先使用精华液,后使用水乳。护肤品的正确使用顺序是水、精华液、乳、霜。1、先使用爽肤水,爽肤水是一种透明液态的护肤品,涂抹在脸部,起到二次清洁肌肤的作用。2、然后使用精华液,精华液是护肤品中的极品,它功效非常强大,使用效果很显著。精华液大多在

    2024-04-15
    68500
  • 妮维雅润肤霜能涂脸吗

    通过了解就会发现,妮维雅是可以涂脸的,由于质地比较厚重,为此可以混合精华一起使用,而且能够更好的被面部所吸收,才能够更好的达到美白的效果。妮维雅润肤霜能涂脸吗的问题之所以被人们所重视,主要是更好的让肌肤保持水分,让肌肤的状态变得更加轻盈透亮

    2024-04-15
    69000
  • 请问有关李煜的记载都在哪些史书中

    新五代史煜字重光,初名从嘉,景第六子也。煜为人仁孝,善属文,工书画,而丰额骈齿,一目重瞳子。自太子冀已上,五子皆早亡,煜以次封吴王。建隆二年,景迁南都,立煜为太子,留监国。景卒,煜嗣立于金陵。母钟氏,父名泰章。煜尊母曰圣尊后;立妃周氏为国后

    2024-04-15
    57700
  • 张柏芝代言的羊奶霜质量怎么样

    好。张柏芝是一个非常遵纪守法和讲诚信的销售团队。他们用羊奶粉制成的羊奶霜,非常受消费者的欢迎,因为他们的成分非常优秀,款式非常齐全,营养非常全面,对年轻女性有非常好的护肤效果。性价比也非常高。我自己用艾璐卡羊奶霜的时候,一指甲盖大小就足够啦

    2024-04-15
    44200
  • 精华露的正确使用步骤精华露的正确使用步骤是怎样的

    1、首先用洁面乳将肌肤清洁干净,让脸部肌肤保持干净。2、涂抹爽肤水,可以将护肤品滴在化妆棉上,然后再涂抹在脸上,还能起到二次清洁的作用,保证肌肤喝足水。3、使用精华露,在调理肌肤后,取按压喷头两下的精华露放在掌心处,然后双手合十,把精华露预

    2024-04-15
    50200
  • 妮维雅蓝罐日产和德产成分区别,妮维雅蓝罐德版和日版有区别吗

    说起妮维雅蓝罐虽然是经典的产品,不过大家在购买后发现了产品的产地有所不同,同时观察仔细的朋友也会发现在妮维雅蓝罐日产和德产成分功效作用等会有一些细微的区别,下面我们就通过对比妮维雅蓝罐日产和德产成分及使用功能等对比说明两者之间的区别。

    2024-04-15
    47500

发表评论

登录后才能评论
保存