From 354b9771aaab94cdc8447dbac4d98a809589c54e Mon Sep 17 00:00:00 2001 From: calvinpan Date: Wed, 31 Oct 2018 19:09:27 +0800 Subject: Create new API for MNO carrier id New telephony APIs to getSimMnoCarrierId and GET_CURRENT_APN_LIST Bug: 115709816 Test: Build pass Change-Id: I415ee634d8392d5120d5d8f79d927c0349d9a42e Merged-in: I415ee634d8392d5120d5d8f79d927c0349d9a42e --- telephony/java/android/provider/Telephony.java | 7 +++++++ .../java/android/telephony/TelephonyManager.java | 22 ++++++++++++++++++++++ .../com/android/internal/telephony/ITelephony.aidl | 12 ++++++++++++ 3 files changed, 41 insertions(+) diff --git a/telephony/java/android/provider/Telephony.java b/telephony/java/android/provider/Telephony.java index 109ffe96571f..e14a36511bc7 100644 --- a/telephony/java/android/provider/Telephony.java +++ b/telephony/java/android/provider/Telephony.java @@ -2638,6 +2638,13 @@ public final class Telephony { public static final Uri ENFORCE_MANAGED_URI = Uri.parse( "content://telephony/carriers/enforce_managed"); + /** + * The {@code content://} style URL to be called from Telephony to query current APNs. + * @hide + */ + public static final Uri SIM_APN_LIST = Uri.parse( + "content://telephony/carriers/sim_apn_list"); + /** * The column name for ENFORCE_MANAGED_URI, indicates whether DPC-owned APNs are enforced. * @hide diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 9f697e9c6e93..ed838c40a1b4 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -8270,6 +8270,28 @@ public class TelephonyManager { return null; } + /** + * Returns MNO carrier id of the current subscription’s MCCMNC. + *

MNO carrier id can be solely identified by subscription mccmnc. This is mainly used + * for MNO fallback when exact carrier id {@link #getSimCarrierId()} + * configurations are not found. + * + * @return MNO carrier id of the current subscription. Return the value same as carrier id + * {@link #getSimCarrierId()}, if MNO carrier id cannot be identified. + * @hide + */ + public int getSimMNOCarrierId() { + try { + ITelephony service = getITelephony(); + if (service != null) { + return service.getSubscriptionMNOCarrierId(getSubId()); + } + } catch (RemoteException ex) { + // This could happen if binder process crashes. + } + return UNKNOWN_CARRIER_ID; + } + /** * Return the application ID for the uicc application type like {@link #APPTYPE_CSIM}. * All uicc applications are uniquely identified by application ID. See ETSI 102.221 and 101.220 diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index cad10f34db46..cf66ca201785 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -1310,6 +1310,18 @@ interface ITelephony { */ String getSubscriptionCarrierName(int subId); + /** + * Returns MNO carrier id of the current subscription’s MCCMNC. + *

MNO carrier id can be solely identified by subscription mccmnc. This is mainly used + * for MNO fallback when exact carrier id {@link #getSimCarrierId()} + * configurations are not found. + * + * @return MNO carrier id of the current subscription. Return the value same as carrier id + * {@link #getSimCarrierId()}, if MNO carrier id cannot be identified. + * @hide + */ + int getSubscriptionMNOCarrierId(int subId); + /** * Action set from carrier signalling broadcast receivers to enable/disable metered apns * Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required -- cgit v1.2.3-59-g8ed1b