android如何正确获取iccid,特别是中间带有字母的iccid
16lz
2022-08-02
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
更多相关文章
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用
- python list.sort()根据多个关键字排序的方法实现
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- android上一些方法的区别和用法的注意事项
- Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
- android实现字体闪烁动画的方法
- Android中dispatchDraw分析
- Android四大基本组件介绍与生命周期