导航:首页 > 操作系统 > 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相关的资料

热点内容
如何在服务器上配置外网网址 浏览:838
阿里云服务器的硬件在哪里 浏览:52
python自动注册谷歌 浏览:329
phpini验证码 浏览:824
解压后的文件怎么驱动 浏览:326
老板要程序员加班 浏览:414
泰尔pdf 浏览:311
视频转码压缩哪款软件好 浏览:647
盯盯拍记录仪下载什么app 浏览:436
新东方新概念英语pdf 浏览:696
python中如何创建菜单栏 浏览:507
中石化app那个叫什么名 浏览:706
借贷宝合集解压密码 浏览:640
python爬取网页代码 浏览:480
efs加密对微信无效 浏览:496
刘秀pdf 浏览:998
脚上长黑刺是什么app 浏览:703
算法工程师上海 浏览:390
php的循环语句怎么写 浏览:289
画圣诞树用什么软件python 浏览:452