android如何正确获取iccid,特别是中间带有字母的iccid

在android设备上面获取sim卡的iccid,相信很多开发者都能很容易做到,网上也有大量的获取方法,99%的写法都和下面一样

 

TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);iccid = tm.getSimSerialNumber();

在正常情况下,上面的方法是有效的,没有问题。本文再提供一个方法供参考,该方法只有在sdk level不小于22的时候才能用

 

SubscriptionInfo info = SubscriptionManager.from(context).getActiveSubscriptionInfoForSimSlotIndex(DEFAULT_SLOT_INDEX);if (info != null){    iccid = info.getIccId();}

 

为什么说正常情况下有效呢,是因为上述方法只能获取到十进制表示的iccid字符串,上面的本质上调用的com.android.internal.telephony.Phone.getIccSerialNumber(),该方法源码如下:

/** * Retrieves the serial number of the ICC, if applicable. Returns only the decimal digits before * the first hex digit in the ICC ID. */public String getIccSerialNumber() {    IccRecords

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  5. android上一些方法的区别和用法的注意事项
  6. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  7. android实现字体闪烁动画的方法
  8. Android中dispatchDraw分析
  9. Android四大基本组件介绍与生命周期

随机推荐

  1. 20分钟入门markdown和emmet
  2. markdown语法
  3. markdown和emmet
  4. 转:Android(安卓)逆向apk程序的心得
  5. 〖Android〗屏幕触屏事件录制与回放
  6. Android(安卓)使用 Gradle 多渠道打包
  7. Android开发工程师已难找工作
  8. Android标题栏ToolBar详解
  9. Android:Toast的用法
  10. ANDROID解决屏幕旋转而导致重启ACTIVITY