安卓系统手机显示无效的IMEI,求救!!

安卓系统手机显示无效的IMEI,求救!!,第1张

基带丢失,楼主打开设置→关于手机基带版本, 会显示基带未知。 基带丢失向来是由于非正常关机引起,机身温度过高的而丢失的情况比较多见,有时候正常关机,第二天早上起床也会发生此类事情,有时候重启几下就正常了。 基带相当于手机卡的驱动模块,没有驱动即无法正常运行手机卡。 提问问题麻烦把问题说清楚,机子型号多少?是由什么引起的。 基带正常有时候也会出现IMEI码未知,型号多见的是索尼机不是基带丢失,而是软件冲突,在设置里面可以看到串码,而拨号输入#06#不能正常显示

安卓手机的话:方法2个:1下载LBE安全大师禁用软件获取IMEI,2高通手机获取root后可在 系统system/buildprop里自定义修改如imei=null(或数字)3MTK的CPU的手机可用“MTK修改器”

随着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) {

游戏要求获取imei权限?答案是应用程序需要这个权限会自动提示获取的。如果没有进行提示,想要允许,可以进入手机设置应用管理权限管理,在权限管理里可以启用软件的权限。所以以上是游戏要求获取imei权限的解决方法

这是应用程序没有获得读取手机识别码的权限,可通过以下步骤给予该权限。不同品牌手机在 *** 作步骤上可能有些许差异。这里以微信为例。

首先在手机设置里找到应用管理选项,进入应用管理。

在应用管理里找到微信选项 。

在微信的应用信息里点击权限管理。

在权限里找到读取手机识别码并给与微信该权限。

扩展资料:

IMEI(International Mobile Equipment Identity)是国际移动设备识别码的缩写。用于在GSM移动网络中识别每一部独立的手机,相当于手机的身份z号码。IMEI码适用于GSM和WCDMA制式的移动电话和铱星卫星电话,而CDMA手机采用MEID码,与IMEI码有所区别。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13097878.html

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

发表评论

登录后才能评论

评论列表(0条)

保存