How to get Dual Sim serial number in Android?

302 views Asked by At

I want to get Dual sim's serial number in Android. I tried a lot but I could not.

I tried the below solutions but nothing works in new versions of android. Your help wil be highly helpful to me. Thanks in advance

Method 1

 TelephonyManager tm = (TelephonyManager)
                getSystemService(Context.TELEPHONY_SERVICE);

 @SuppressLint("MissingPermission") String simID = tm.getSimSerialNumber(); // output is null
 @SuppressLint("MissingPermission") String telNumber = tm.getLine1Number(); // returns mobile number not serial number
 String s = tm.getMeid(1); //returns empty

Method 2

  // This returns empty

 public static String getSerialNumber () {
        String serialNumber;
        try {
            Class<?> c = Class.forName ("android.os.SystemProperties");
            Method get = c.getMethod ("get", String.class);
            serialNumber = (String) get.invoke (c, "gsm.sn1");
            if (serialNumber.equals (""))
            serialNumber = (String) get.invoke (c, "ril.serialnumber");
            if (serialNumber.equals (""))
            serialNumber = (String) get.invoke (c, "ro.serialno");
            if (serialNumber.equals (""))
            serialNumber = (String) get.invoke (c, "sys.serialnumber");
            if (serialNumber.equals (""))
            serialNumber = Build.SERIAL;
            if (serialNumber.equals (""))
            serialNumber = null;
        } catch (Exception e) {
            e.printStackTrace ();
            serialNumber = null;
        }
        return serialNumber;
    }

Method 3 // this also returns empty

    String simSerialNo="";

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {

        SubscriptionManager subsManager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE); 

        List<SubscriptionInfo> subsList = subsManager.getActiveSubscriptionInfoList();

        if (subsList!=null) {
            for (SubscriptionInfo subsInfo : subsList) {
                if (subsInfo != null) {
                    simSerialNo  = subsInfo.getIccId());
                }
            }
        }
    } else {
        TelephonyManager tMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        simSerialNo = tMgr.getSimSerialNumber();
    }
}

I tried many more solutions avilable in the internet. Notihing helps

0

There are 0 answers