diff options
6 files changed, 31 insertions, 0 deletions
diff --git a/telephony/java/com/android/internal/telephony/Phone.java b/telephony/java/com/android/internal/telephony/Phone.java index 48c5318c2943..4b02e8edfede 100644 --- a/telephony/java/com/android/internal/telephony/Phone.java +++ b/telephony/java/com/android/internal/telephony/Phone.java @@ -1430,6 +1430,11 @@ public interface Phone { String getMeid(); /** + * Retrieves IMEI for phones. Returns null if IMEI is not set. + */ + String getImei(); + + /** * Retrieves the PhoneSubInfo of the Phone */ public PhoneSubInfo getPhoneSubInfo(); diff --git a/telephony/java/com/android/internal/telephony/PhoneProxy.java b/telephony/java/com/android/internal/telephony/PhoneProxy.java index c2212dbae1af..b5bfc76fd8eb 100644 --- a/telephony/java/com/android/internal/telephony/PhoneProxy.java +++ b/telephony/java/com/android/internal/telephony/PhoneProxy.java @@ -685,6 +685,10 @@ public class PhoneProxy extends Handler implements Phone { return mActivePhone.getMeid(); } + public String getImei() { + return mActivePhone.getImei(); + } + public PhoneSubInfo getPhoneSubInfo(){ return mActivePhone.getPhoneSubInfo(); } diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMALTEPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMALTEPhone.java index a31b7041696c..0d9d27d138e3 100644 --- a/telephony/java/com/android/internal/telephony/cdma/CDMALTEPhone.java +++ b/telephony/java/com/android/internal/telephony/cdma/CDMALTEPhone.java @@ -136,6 +136,11 @@ public class CDMALTEPhone extends CDMAPhone { } @Override + public String getImei() { + return mImei; + } + + @Override protected void log(String s) { if (DBG) Log.d(LOG_TAG, "[CDMALTEPhone] " + s); diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java index 8a60b5a070f9..286515eb6c4d 100755 --- a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java +++ b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java @@ -122,6 +122,8 @@ public class CDMAPhone extends PhoneBase { //keep track of if phone is in emergency callback mode private boolean mIsPhoneInEcmState; private Registrant mEcmExitRespRegistrant; + protected String mImei; + protected String mImeiSv; private String mEsn; private String mMeid; // string to define how the carrier specifies its own ota sp number @@ -489,6 +491,11 @@ public class CDMAPhone extends PhoneBase { return mSST.getImsi(); } + public String getImei() { + Log.e(LOG_TAG, "IMEI is not available in CDMA"); + return null; + } + public boolean canConference() { Log.e(LOG_TAG, "canConference: not possible in CDMA"); return false; @@ -987,6 +994,8 @@ public class CDMAPhone extends PhoneBase { break; } String[] respId = (String[])ar.result; + mImei = respId[0]; + mImeiSv = respId[1]; mEsn = respId[2]; mMeid = respId[3]; } diff --git a/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java b/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java index d357eacf5d1b..1db98600123f 100644 --- a/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java +++ b/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java @@ -855,6 +855,10 @@ public class GSMPhone extends PhoneBase { return mImeiSv; } + public String getImei() { + return mImei; + } + public String getEsn() { Log.e(LOG_TAG, "[GSMPhone] getEsn() is a CDMA method"); return "0"; diff --git a/telephony/java/com/android/internal/telephony/sip/SipPhoneBase.java b/telephony/java/com/android/internal/telephony/sip/SipPhoneBase.java index 9dfc0158a26a..5c4b446a78cf 100755 --- a/telephony/java/com/android/internal/telephony/sip/SipPhoneBase.java +++ b/telephony/java/com/android/internal/telephony/sip/SipPhoneBase.java @@ -264,6 +264,10 @@ abstract class SipPhoneBase extends PhoneBase { return null; } + public String getImei() { + return null; + } + public String getEsn() { Log.e(LOG_TAG, "[SipPhone] getEsn() is a CDMA method"); return "0"; |