Android实现string[0]返回设备主卡对应的IMSI号,string[1]返回设备副卡对应的IMSI号,若无副卡,返回空,完整代码展示
时间: 2024-03-01 10:51:25 浏览: 96
IMEI_IMSI.rar_IMEI_IMSI_SIM卡imsi_visual c_wince_wince IMEI
请注意,获取 IMSI 号需要 READ_PHONE_STATE 权限,所以需要在 AndroidManifest.xml 文件中添加以下代码:
```xml
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
```
然后,可以使用 TelephonyManager 类来获取 IMSI 号。以下是完整的代码:
```java
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String[] imsis = new String[2];
imsis[0] = telephonyManager.getSubscriberId();
imsis[1] = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
List<SubscriptionInfo> subscriptionInfoList = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
if (subscriptionInfoList != null && subscriptionInfoList.size() > 1) {
imsis[1] = subscriptionInfoList.get(1).getIccId();
}
}
return imsis;
```
注意:在 Android 5.1 之前,在设备中只有一张 SIM 卡的情况下,getSubscriberId() 方法返回的是主卡的 IMSI 号。在 Android 5.1 之后,getSubscriberId() 方法返回的是当前活动的 SIM 卡的 IMSI 号。
阅读全文