Android13 获取iccid和imsi

SubscriptionManager mSubscriptionManager = SubscriptionManager.from(DeviceService.this);
if (ActivityCompat.checkSelfPermission(DeviceService.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
    // TODO: Consider calling
    //    ActivityCompat#requestPermissions
    // here to request the missing permissions, and then overriding
    //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
    //                                          int[] grantResults)
    // to handle the case where the user grants the permission. See the documentation
    // for ActivityCompat#requestPermissions for more details.
    return null;
}
List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList();
TelephonyManager telephonyManager = (TelephonyManager) DeviceService.this.getSystemService(Context.TELEPHONY_SERVICE);
String Iccid1 = "";
String Iccid2 = "";
String Imsi1 = "";
String Imsi2 = "";
if (sil != null) {
    int num = 0;
    for (SubscriptionInfo subInfo : sil) {
        int sbuid = subInfo.getSubscriptionId();
        Log.v(TAG, "SubInfo:" + subInfo + " sbuid=" + sbuid + " num=" + num);
        if (num == 0) {
            Iccid1 = subInfo.getIccId();
            Imsi1 = getSubscriberId(sbuid);
        } else {
            Iccid2 = subInfo.getIccId();
            Imsi2 = getSubscriberId(sbuid);
        }
        num++;
    }
} else {
    Log.v(TAG, "onSubscriptionInfoChanged: list is null");
}
public String getSubscriberId(int subId) {
    TelephonyManager telephonyManager = (TelephonyManager) DeviceService.this
            .getSystemService(TELEPHONY_SERVICE);// 取得相关系统服务
    Class<?> telephonyManagerClass = null;
    String imsi = null;
    try {
        telephonyManagerClass = Class.forName("android.telephony.TelephonyManager");

        if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.LOLLIPOP) {
            Method method = telephonyManagerClass.getMethod("getSubscriberId", int.class);
            imsi = (String) method.invoke(telephonyManager, subId);
        } else if (android.os.Build.VERSION.SDK_INT == android.os.Build.VERSION_CODES.LOLLIPOP) {
            Method method = telephonyManagerClass.getMethod("getSubscriberId", long.class);
            imsi = (String) method.invoke(telephonyManager, (long) subId);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    Log.d("Q_M", "IMSI--" + imsi);
    return imsi;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值