Is it possible to get the following information of a incoming number in android
This is tricky for this you need to implment a application in that user's phone also. Because when you are getting the call from some user then you will get only MSISDN through which you can not gwt the details. There should be a app on other users mobile which will trigger a event in case he makes a call, now that app can fetch the MCC.MNC and cell id and can send via sms to called party and then called party can process this sms to get the details. Its simple logic that if you want to spy someone then you have install something at his end.
This would give you the # :
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String sim = telephonyManager.getSimSerialNumber();
Also add this permission to the manifest :
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
for getting the mobile # change it to :
String sim = telephonyManager.getLine1Number();
You could also refer to this : Access the SIM Card with an Android Application?
For getting incoming caller sim details refer to this : http://sms411.net/2006/07/finding-out-someones-carrier/ and How do i get the carrier name of an incoming number in android..?
The solution :
You can't because the data of incomming call contains only the number as string, and by sms ? also no because the user data header of the message can be null !!!
If you develop a current location application, it can be used only by the owner of the cell phone.
In the other hand, there are some developer who want to use the AT command to request the call but the only data comes with a call is only the number and only the number !!!