From 2ea7e443b27ff185104b8a8b5e7a08b5510125bd Mon Sep 17 00:00:00 2001 From: John Wang Date: Mon, 11 Jul 2011 16:50:10 -0700 Subject: [PATCH] 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 +++++ .../java/com/android/internal/telephony/PhoneProxy.java | 4 ++++ .../android/internal/telephony/cdma/CDMALTEPhone.java | 5 +++++ .../com/android/internal/telephony/cdma/CDMAPhone.java | 9 +++++++++ .../com/android/internal/telephony/gsm/GSMPhone.java | 4 ++++ .../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 48c5318c2943a..4b02e8edfede5 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 c2212dbae1af3..b5bfc76fd8eb9 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 a31b7041696c2..0d9d27d138e37 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 7f6bb453f9c90..63b7dac06cd15 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 275c8fe437f12..d1758f226d136 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 9dfc0158a26a5..5c4b446a78cf6 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";