For single SIM following code works:
TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String imei= tm.getDeviceId();
Steps: 1 > You must have READ_PHONE_STATE Permission enabled
2 > For Android SDK v23<= get SIM 1 & SIM 2 IMEI by this:
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); Log.e("IMEI---1:", tm.getDeviceId(0) ); Log.e("IMEI---2:", tm.getDeviceId(1) );