From 284f1ec16e816f60cbbf243cebb2de90c50322bb Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Mon, 18 Aug 2014 17:49:59 -0700 Subject: [PATCH] Adding APIs to get IMEI/MEID Change-Id: I553b7c019b20a64ff1049f35b0e3999ab82b7cce --- .../android/telephony/TelephonyManager.java | 31 +++++++++++++++++++ .../internal/telephony/IPhoneSubInfo.aidl | 4 +++ 2 files changed, 35 insertions(+) diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index c50110a58b1b6..4ef97ebdb8314 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -616,6 +616,37 @@ public class TelephonyManager { } } + /** + * Returns the IMEI. Return null if IMEI is not available. + * + *

Requires Permission: + * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} + */ + /** {@hide} */ + public String getImei() { + return getImei(getDefaultSim()); + } + + /** + * Returns the IMEI. Return null if IMEI is not available. + * + *

Requires Permission: + * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} + * + * @param slotId of which deviceID is returned + */ + /** {@hide} */ + public String getImei(int slotId) { + long[] subId = SubscriptionManager.getSubId(slotId); + try { + return getSubscriberInfo().getImeiUsingSubId(subId[0]); + } catch (RemoteException ex) { + return null; + } catch (NullPointerException ex) { + return null; + } + } + /** * Returns the current location of the device. *

diff --git a/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl b/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl index 4734965b8ee9c..552abafcbc21b 100644 --- a/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl +++ b/telephony/java/com/android/internal/telephony/IPhoneSubInfo.aidl @@ -33,6 +33,10 @@ interface IPhoneSubInfo { */ String getDeviceIdUsingSubId(long subId); + /** + * Retrieves the IMEI. + */ + String getImeiUsingSubId(long subId); /** * Retrieves the software version number for the device, e.g., IMEI/SV