diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index a690e3c049955..a744486aca371 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -484,7 +484,12 @@ public class TelephonyManager { * @return true if a ICC card is present */ public boolean hasIccCard() { - return PhoneFactory.getDefaultPhone().getIccCard().hasIccCard(); + try { + return getITelephony().hasIccCard(); + } catch (RemoteException ex) { + // Assume no ICC card if remote exception which shouldn't happen + return false; + } } /** diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 63c23ae569547..2328717c19cbe 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -252,5 +252,10 @@ interface ITelephony { * Returns the network type */ int getNetworkType(); + + /** + * Return true if an ICC card is present + */ + boolean hasIccCard(); }