Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d3b26114 authored by calvinpan's avatar calvinpan
Browse files

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
parent a17b785a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2729,6 +2729,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
+22 −0
Original line number Diff line number Diff line
@@ -8317,6 +8317,28 @@ public class TelephonyManager {
        return null;
    }

    /**
     * Returns MNO carrier id of the current subscription’s MCCMNC.
     * <p>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
+12 −0
Original line number Diff line number Diff line
@@ -1310,6 +1310,18 @@ interface ITelephony {
     */
    String getSubscriptionCarrierName(int subId);

    /**
     * Returns MNO carrier id of the current subscription’s MCCMNC.
     * <p>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