How can I retrieve the country code information for Android devices under CDMA networks?
For all others, you can just use the TelephonyManager for that:
I found a way to tackle this problem... If it is a CDMA phone, then the phone always has ICC hardware comparable to SIM cards in GSM.
All you have got to do is use the system properties associated with the hardware. Programmatically, you can use Java reflection to get this information. This is not changeable, even if the system is rooted, unlike a GSM device.
Class> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class);
// Gives MCC + MNC
String homeOperator = ((String) get.invoke(c, "ro.cdma.home.operator.numeric"));
String country = homeOperator.substring(0, 3); // The last three digits is MNC