文章目录

  • Android 获取ICCID,IMEI
    • 权限
    • 获取ICCID方法
      • 一:TelephonyManager
      • 二: SubscriptionInfo

Android 获取ICCID,IMEI

权限

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Android 6.0 以上需要动态申请

获取ICCID方法

一:TelephonyManager

在Android Q之前 可用,

在android Q(10)上不可用,尝试降低targetSdkVersion至28,同样在华为手机上无法获取IMEI和ICCID,其他手机待测

public static String getSimSerialNumber(Context context) {TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE);boolean allow = ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED;Log.d("ALLOW","-----"+allow);//IMEIif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {Log.d("Phone Imei","==="+telephonyManager.getImei());} else {Log.d("Phone Imei","==="+telephonyManager.getDeviceId());}//ICCIDLog.d("Phone SimSerial","==="+telephonyManager.getSimSerialNumber());return telephonyManager.getSimSerialNumber();
}
二: SubscriptionInfo

在android Q(10)上可以获取ICCID,在华为手机上无法获取Number,也无法通过反射获取IMEI

public static String getSimSerialNumberAll(Context context) {boolean allow = ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED;if (!allow) {return "Need READ_PHONE_STATE permission";}List<SubscriptionInfo> sis;if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {SubscriptionManager sm = SubscriptionManager.from(context);int count = sm.getActiveSubscriptionInfoCount();//当前实际插卡数量int max = sm.getActiveSubscriptionInfoCountMax();//当前卡槽数量Log.d("card number=", String.valueOf(count));Log.d("card slot num", String.valueOf(max));sis = sm.getActiveSubscriptionInfoList();for (SubscriptionInfo subInfo : sis) {Log.d("iccId",subInfo.getIccId()); //ICC IDLog.d("Number",subInfo.getNumber());}return Arrays.toString(sis.toArray());}else {return "version < 22";}}
 TelephonyManager tm = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE);
try {Method method = tm.getClass().getMethod("getImei");String imei = (String) method.invoke(tm);Log.d("sim卡IMEI:","==="+imei);
} catch (NoSuchMethodException e) {e.printStackTrace();
} catch (IllegalAccessException e) {e.printStackTrace();
} catch (InvocationTargetException e) {e.printStackTrace();
}

详细:唯一标识符最佳做法

参考:

https://blog.csdn.net/qq_43278826/article/details/95216504

Android 获取ICCID,IMEI相关推荐

  1. Android获取手机IMEI,IMSI, MAC标识和唯一标识的生成

    急的直接看这个: android 获取设备IMEI与序列号: ​ //IMEI(imei) TelephonyManager tm = (TelephonyManager) ChinaApplicat ...

  2. android 6.0获取手机imei,android获取手机信息大全,android获取大全,IMEI号,IESI号,...

    android获取手机信息大全,android获取大全,IMEI号,IESI号, IMEI号,IESI号,手机型号: [java] view plaincopyprint?private void g ...

  3. Android获取手机IMEI号和IMSI号

    下面是主要内容: IMEI 和 IMSI 是什么 如何获取 IMEI 和 IMSI 代码示例 1. 先看下 IMEI 和 IMSI 是什么 IMEI(International Mobile Equi ...

  4. android 获取iccid imsi

    网上关于这些挺多的,不过没找到关于双卡的以及未插卡的异常处理,我的需求是在settings里面添加菜单显示iccid imsi,记录一下 (一)在设置-关于手机显示iccid imsi 1.在pack ...

  5. android 获取手机IMEI号码

    核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getDeviceId(); 1.加入权限 在manife ...

  6. android 获取设备串号,Android获取设备IMEI和Mac地址

    释放双眼,带上耳机,听听看~! public static boolean checkPermission(Context context, String permission) { boolean ...

  7. android根据mac地址连接耳机,Android获取设备IMEI和Mac地址

    释放双眼,带上耳机,听听看~! public static boolean checkPermission(Context context, String permission) { boolean ...

  8. Android 获取设备各种信息以及其它

    做手机开发,想必都希望获取手机号码吧,android中有一个类android.telephony.TelephonyManager提供这个功能. TelephonyManager tm = (Tele ...

  9. 关于android系统获取iccid的问题

    1.什么是iccid? ICCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中) ICCID为IC卡的唯一识别号码,共有20位数字组成,其编 ...

  10. android获取imei兼容_Android获取IMEI号码

    1 android 获取 imei号码2 3 核心代码:4 5 Imei =((TelephonyManager) getSystemService(TELEPHONY_SERVICE))6 .get ...

最新文章

  1. PNAS:水稻微生物组
  2. 类的继承定义一个computer类在此基础上派生出两个子类(继承与多态绑定)
  3. No module named MNIST_写给小白的用fashion-mnist入门机器学习和深度学习的简单项目(非常全面!!!)...
  4. 统计学习:基本常用公式(1)
  5. Zxing二维码精简(竖屏、拉伸处理、扫描框大小和扫描线移动)
  6. matlab调用kmeans_matlab做聚类分析(k-means)
  7. Codeforces Round #693 (Div. 3) G. Moving to the Capital dp + 思维
  8. Vue组件化开发 - 非常详细,不要错过哦~
  9. 推荐 | 自然语言处理、计算机视觉等机器学习实战项目练手平台
  10. ZR18提高5解题报告
  11. 大数据导论章节答案_大数据概论智慧树章节答案
  12. [BZOJ 5339] 教科书般的亵渎
  13. 号称是世界最大的电子书图书馆ZLibrary
  14. CGAL 计算几何库
  15. 英语——句子结构和成分大全【学习笔记】
  16. java实现阿里云图片文字识别
  17. influence和effect的区别
  18. CC00056.bigdatajava——|Java分支结构.V06|——|Java.v06|ifelseifelse.v02|个人所得税计算方式一|
  19. 【心理】执行功能障碍
  20. 浅谈移动端页面性能优化方案

热门文章

  1. 为黑苹果解锁AirDrop功能和蓝牙以及WI-FI
  2. springBoot添加日志管理
  3. 七大江河水系--长江(二)
  4. Excel-事件(Workbook、Worksheet、Range、OnKey/OnTime)
  5. string之取子串
  6. String类常用方法解析
  7. [ArcPy] 1 ArcPy与栅格(Raster)
  8. 移动支付清算平台介绍
  9. stick和stuck的区别_strike(struck)及stick (stuck)区别
  10. 2020年金融科技创新项目总结