导航:首页 > 操作系统 > android读取imei

android读取imei

发布时间:2023-12-28 18:41:17

android imei获取

随着android系统不断升级,android设备的imei号已经越来越难获取了。网上一些推荐会用meid、androidid来代替imei号。但是因为项目推广需要比对渠道那边回传imei号来确认新增。
发现部分机型渠道(eg:快手)可以获取到而我们获取不到,导致无法确认新增。最终在TelephonyManager中找到getDeviceSoftwareVersion()方法。可以变相实现获取imei号(但也会有getDeviceSoftwareVersion获取不到的机型,不过验证渠道那边也获取不到了)。

public static String getIMEI() {
TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE);
String imei = null;
if (AndPermission.hasPermissions(BaseApplication.getAppContext(), Manifest.permission.READ_PHONE_STATE)) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
imei = telephonyManager.getImei();
if (!TextUtils.isEmpty(imei)) {
return imei;
} else {
String softwareVersion = getDeviceSoftwareVersion();
if (!TextUtils.isEmpty(softwareVersion) && softwareVersion.length() > 14) {
String imeiHead = softwareVersion.substring(0, 14);
imei = imeiHead + luhn(imeiHead);
return imei;
} else {
return null;
}
}
} else {
return telephonyManager.getDeviceId();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return imei;
}

/**
* Luhn算法
* 根据号码获取校验位
*
* @param cardNumber
* @return
*/
public static int luhn(String cardNumber) {
int totalNumber = 0;
for (int i = cardNumber.length() - 1; i >= 0; i -= 2) {
int tmpNumber = calculate(Integer.parseInt(String.valueOf(cardNumber.charAt(i))) * 2);
if (i == 0) {
totalNumber += tmpNumber;
} else {
totalNumber += tmpNumber + Integer.parseInt(String.valueOf(cardNumber.charAt(i - 1)));
}

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

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

如果是自己app内部做唯一标识的话可以用meid、androidid或deviceid来代替imei
public static String getUniqueId() {
TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE);
if (AndPermission.hasPermissions(BaseApplication.getAppContext(), Manifest.permission.READ_PHONE_STATE)) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {

⑵ 手机设备号

手机设备号即手机设备码,英文缩写为:IMEI,即国际移动设备身份码,由15位数字组成。通俗的讲,手机的设备号就是手机的身份证,这是出厂时就分配好的,在全世界的移动设备中是唯一的。

但是需要说明的是,并不是每个手机只有一个设备号,对于双卡双待手机来说,它有两个设备号,即两个身份证。每个卡位对应一个设备号,不因所装手机卡不同而改变。

安卓手机查看IMEI号的方法:

第一步:在【待机界面】点击【电话】,进入拨号界面,在【拨号界面】输入【*#06#】,如图:

以上就是安卓手机查看IMEI号的方法介绍是适合所有安卓平台手机的,有需要安卓手机IMEI号的小伙伴们可以按照此安卓手机IMEI号查看方法来获取自己安卓手机的IMEI号。

⑶ 怎么改安卓手机的IMEI串号

手机IMEI串号对于每一部手机来说,都是唯一的,该串号在验证手机是否为真品,

以及其它一些特定场合具有十分重要的作用。下面就来看一下如何获取手机的IMEI串号。

在手机拨号盘界面输入【*#06#】 ,就可以获取当前手机的IMEI串号。

安卓手机查看通过手机参数进行查看。点击“启动程序”按钮,然后点击“设置”→“关于手机”→“状态消息”,就可以查看到本机IMEI号。

imei串码方面 可以分单串号和双串号 可用于串号丢失 做业务等等

⑷ 安卓手机怎么查看IMEI号

vivo手机IMEI码查询方法:
1、打开拨号盘,在拨号界面输入 *#06# 即可;
2、进入手机设置--系统管理/更多设置--关于手机中,可查询到;
(部分机型进入手机设置--我的设备--更多参数中可查询到)
3、手机包装盒上会有一张标注手机信息的的贴纸,在上面查看到IMEI码;
4、手机包装盒中的“重要信息与保修卡”册子,贴有手机的IMEI码。

阅读全文

与android读取imei相关的资料

热点内容
pythonfiddle 浏览:215
韩信分油总共有几种算法 浏览:941
程序员思维方案 浏览:970
编译环境要装c盘吗 浏览:648
单片机生成pwm 浏览:206
线上租车有什么app 浏览:908
php程序修改 浏览:684
下列能查找文件或文件夹的操作是 浏览:314
遥感科学与技术算法待遇 浏览:136
cad标注半径命令 浏览:367
打卡领购app邀请码怎么填 浏览:336
编程访问权限冲突 浏览:152
桌面运维如何转服务器运维 浏览:627
tomcat如何设置服务器 浏览:679
php编译支持mysql 浏览:817
mir4手游安卓版怎么玩国际服 浏览:23
服务器程序怎么删除 浏览:657
阿里年薪70万程序员名单照片 浏览:575
android定制输入法 浏览:758
linux下编译android 浏览:311