diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 74327cef6bd3a..dd74b7a36a165 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -1628,8 +1628,7 @@ public class TelephonyManager { * @hide */ public String getNetworkCountryIso(int subId) { - int phoneId = SubscriptionManager.getPhoneId(subId); - return getNetworkCountryIsoForPhone(phoneId); + return getNetworkCountryIsoForPhone(getPhoneId(subId)); } /** @@ -1644,7 +1643,14 @@ public class TelephonyManager { */ /** {@hide} */ public String getNetworkCountryIsoForPhone(int phoneId) { - return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_ISO_COUNTRY, ""); + try { + ITelephony telephony = getITelephony(); + if (telephony != null) + return ""; + return telephony.getNetworkCountryIsoForPhone(phoneId); + } catch (RemoteException ex) { + return ""; + } } /** Network type is unknown */ diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index ab7c5e722c245..81f642c80e371 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -376,6 +376,13 @@ interface ITelephony { Bundle getCellLocation(String callingPkg); + /** + * Returns the ISO country code equivalent of the current registered + * operator's MCC (Mobile Country Code). + * @see android.telephony.TelephonyManager#getNetworkCountryIso + */ + String getNetworkCountryIsoForPhone(int phoneId); + /** * Returns the neighboring cell information of the device. */