Programmatically retrieve IMEI number for dual SIM in android

后端 未结 12 1088
一生所求
一生所求 2020-12-05 15:19

For single SIM following code works:

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String imei= tm.getDeviceId();
相关标签:
12条回答
  • 2020-12-05 15:48

    Yes Android currently not supported Dual Sim. But you can retrive all possible details by using Java reflection.

    I research for fetching dual SIMs details and it works on bellowed devices
    Samsung Galaxy Neo
    Moto E
    Micromax A52
    Micromax Canvas
    Linovo P780
    HTC Dreem
    Moto G
    LG
    HUAWEI Y520-U22
    LG-P705
    Sony ST26i
    I successfully get dual SIM Detials from above models

    0 讨论(0)
  • 2020-12-05 15:50

    Yes we can get both IMEI numbers Using this below code

    TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    String imeiNumber1 = tm.getDeviceId(1); //(API level 23)   
    String imeiNumber2 = tm.getDeviceId(2);
    
    0 讨论(0)
  • 2020-12-05 15:52

    Try using getDeviceId(int slotId) added in API level 23.

    Returns the unique device ID of a subscription, for example, the IMEI for GSM and the MEID for CDMA phones. Return null if device ID is not available.

    Requires Permission: READ_PHONE_STATE

    0 讨论(0)
  • 2020-12-05 15:55

    TelephonyInfo telephonyInfo = TelephonyInfo.getInstance(this);

        String imeiSIM1 = telephonyInfo.getImsiSIM1();
        String imeiSIM2 = telephonyInfo.getImsiSIM2();
    
        boolean isSIM1Ready = telephonyInfo.isSIM1Ready();
        boolean isSIM2Ready = telephonyInfo.isSIM2Ready();
    
        boolean isDualSIM = telephonyInfo.isDualSIM();
    
        TextView tv = (TextView) findViewById(R.id.txt_imei);
        tv.setText(" IME1 : " + imeiSIM1 + "\n" +
                " IME2 : " + imeiSIM2 + "\n" +
                " IS DUAL SIM : " + isDualSIM + "\n" +
                " IS SIM1 READY : " + isSIM1Ready + "\n" +
                " IS SIM2 READY : " + isSIM2Ready + "\n");
    
    }
    
    0 讨论(0)
  • 2020-12-05 16:01
    TelephonyManager first = (TelephonyManager) getFirstMethod.invoke(null, obParameter);
    
    Log.d(TAG, "Device Id: " + first.getDeviceId() + ", device status: " + first.getSimState() + ", operator: " + first.getNetworkOperator() + "/" + first.getNetworkOperatorName());
    
    obParameter[0] = 1;
    TelephonyManager second = (TelephonyManager) getFirstMethod.invoke(null, obParameter);
    
    Log.d(TAG, "Device Id: " + second.getDeviceId() + ", device status: " + second.getSimState()+ ", operator: " + second.getNetworkOperator() + "/" + second.getNetworkOperatorName());
    
    0 讨论(0)
  • 2020-12-05 16:02

    You can use this method to get both imei. Sorry for inconvenience. I was in a hurry.

    public static void samsungTwoSims(Context context) {
        TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
    
    try{
    
            Class<?> telephonyClass = Class.forName(telephony.getClass().getName());
    
            Class<?>[] parameter = new Class[1];
            parameter[0] = int.class;
            Method getFirstMethod = telephonyClass.getMethod("getDefault", parameter);
    
            Log.d(TAG, getFirstMethod.toString());
    
            Object[] obParameter = new Object[1];
            obParameter[0] = 0;
            TelephonyManager first = (TelephonyManager) getFirstMethod.invoke(null, obParameter);
    
            Log.d(TAG, "Device Id: " + first.getDeviceId() + ", device status: " + first.getSimState() + ", operator: " + first.getNetworkOperator() + "/" + first.getNetworkOperatorName());
    
            obParameter[0] = 1;
            TelephonyManager second = (TelephonyManager) getFirstMethod.invoke(null, obParameter);
    
            Log.d(TAG, "Device Id: " + second.getDeviceId() + ", device status: " + second.getSimState()+ ", operator: " + second.getNetworkOperator() + "/" + second.getNetworkOperatorName());
        } catch (Exception e) {
            e.printStackTrace();
        }   
    }
    
    0 讨论(0)
提交回复
热议问题