导航:首页 > 操作系统 > android双卡获取imei

android双卡获取imei

发布时间:2023-07-28 12:52:35

1. 如何获取android设备的imei号

获取android设备的imei号可以打开拨号盘,输入*#06#即可查看IMEI号。
国际移动设备识别码(IMEI:International Mobile Equipment Identification Number)是区别移动设备的标志,储存在移动设备中,可用于监控被窃或无效的移动设备。IMEI可用移动终端设备通过键入"*#06#"查得(不同厂商的手机所需输入的内容不同,同一厂商不同手机所需输入的内容也可能不同)。其总长为15位,每位数字仅使用0~9的数字(含义见下文)。
IMEI俗称"串号",存储在手机的EEPROM(俗称"码片")里,熟悉并了解这个号码对我们今后识别手机会起到非常大的作用。

2. 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) {

3. 双卡双待的安卓手机,有两个imei,app获取的是哪个还是设备标识是唯一的

哪个APP获取?两个都是可以获取到的,很多手机关于本机里面IMEI只会显示第一个,新机防伪认证贴的条码上应该会列出所有IMEI

4. android怎么获得双卡imsi和imei

getSimSerialNumber()是获取IMEI的
getSubscriberId()才是获取IMSI的

MTK的是getSubscriberIdGemini(int simId)
对应的getSimSerialNumberGemini(int simId)

高通平台有单独的类MSimTelephonyManager里面有方法
getSubscriberId(int simId)
getSimSerialNumber(int simId)
高通平台接口不太确定各个厂商是否都是这样.据说之前高通双卡方案代码是外包的,可能不太一样.

simId 0应该是主卡 1是次卡

要用反射掉,不是原生接口

5. 安卓手机怎么查看IMEI号

IMEI码是移动设备国际身份码的缩写,由15位数字组成。每部正规的手机至少会有一个IMEI码(双卡手机有两个IMEI码),SN码和IMEI码可以注册论坛VIP、查询手机真伪等。
温馨提示:IMEI码不可以修改或注销。
vivo手机IMEI码查询方法:
1、打开拨号盘,在拨号界面输入 *#06# 即可;
2、①Funtouch OS 9.2/iQOO Monster UI及以上:进入手机设置--我的设备--更多参数中,可查询到;
②Funtouch OS 9.2以下:进入设置--更多设置--关于手机中查询;
3、手机包装盒上会有一张标注手机信息的的贴纸,在上面查看到IMEI码;
4、手机包装盒中的“重要信息与保修卡”册子,贴有手机的IMEI码。

6. android怎么获取手机imei号

您可以通过手机设置的关于本机选项下查看手机IMEI码。
也可以通过拨号键盘输入*#06#获得。

阅读全文

与android双卡获取imei相关的资料

热点内容
plc编译后错误18 浏览:612
python数组分片 浏览:251
linux图形化编程 浏览:176
阿里国际站app端怎么装修 浏览:528
微信小程序云开发简单搭建源码 浏览:851
以后缺程序员吗 浏览:294
jsp源码不能运行 浏览:363
淘客助手源码下载 浏览:733
如何使用app记账报税 浏览:562
python线程捕捉键盘 浏览:25
地推统计图app怎么做 浏览:162
android文件夹不能用了 浏览:857
加密软件的日志 浏览:892
肾病pdf 浏览:230
网站怎么用本地服务器 浏览:120
javadoc导入android 浏览:517
文件扫描成pdf 浏览:696
凉山火灾救援命令 浏览:54
压缩机三相检测 浏览:861
linux怎么安装光盘 浏览:799