From 2ea7e443b27ff185104b8a8b5e7a08b5510125bd Mon Sep 17 00:00:00 2001 From: John Wang Date: Mon, 11 Jul 2011 16:50:10 -0700 Subject: Add getImei() to Phone interface. Need IMEI to be displayed in LTE Settings. Since getDeviceId() returns MEID for LTE device, getImei() is added to return IMEI for all devices. getImei returns null if not set (as SipPhone). bug:4983512 Change-Id: Idfe2ec8de514f330248db7a9de7e241f9a38cb96 --- telephony/java/com/android/internal/telephony/Phone.java | 5 +++++ telephony/java/com/android/internal/telephony/PhoneProxy.java | 4 ++++ .../java/com/android/internal/telephony/cdma/CDMALTEPhone.java | 5 +++++ .../java/com/android/internal/telephony/cdma/CDMAPhone.java | 9 +++++++++ telephony/java/com/android/internal/telephony/gsm/GSMPhone.java | 4 ++++ .../java/com/android/internal/telephony/sip/SipPhoneBase.java | 4 ++++ 6 files changed, 31 insertions(+) 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 @@ -1429,6 +1429,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 */ 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 @@ -135,6 +135,11 @@ public class CDMALTEPhone extends CDMAPhone { return mIccRecords.getIMSI(); } + @Override + public String getImei() { + return mImei; + } + @Override protected void log(String s) { if (DBG) diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java index 7f6bb453f9c9..63b7dac06cd1 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 275c8fe437f1..d1758f226d13 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"; -- cgit v1.2.3-59-g8ed1b