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

Commit 6fdfb791 authored by jinjeong's avatar jinjeong Committed by Jin Jeong
Browse files

New System Api: getCarrierId using carrierIdentifier

Bug: b/378778278
FLAG: com.android.internal.telephony.flags.carrier_id_from_carrier_identifier
Test: atest
Change-Id: I763fff823aecbe26c000c12cf6edb01371cbf52f
parent 263748a8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -15925,6 +15925,7 @@ package android.telephony {
    method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public android.content.ComponentName getAndUpdateDefaultRespondViaMessageApplication();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getCallForwarding(int, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CallForwardingInfoCallback);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getCallWaitingStatus(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
    method @FlaggedApi("com.android.internal.telephony.flags.carrier_id_from_carrier_identifier") @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @WorkerThread public int getCarrierIdFromCarrierIdentifier(@NonNull android.service.carrier.CarrierIdentifier);
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.ImsiEncryptionInfo getCarrierInfoForImsiEncryption(int);
    method public java.util.List<java.lang.String> getCarrierPackageNamesForIntent(android.content.Intent);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<java.lang.String> getCarrierPackageNamesForIntentAndPhone(android.content.Intent, int);
+33 −0
Original line number Diff line number Diff line
@@ -19594,4 +19594,37 @@ public class TelephonyManager {
            throw ex.rethrowAsRuntimeException();
        }
    }
    /**
     * Returns carrier id maps to the passing CarrierIdentifier.
     * To recognize a carrier (including MVNO) as a first-class identity,
     * Android assigns each carrier with a canonical integer a.k.a. carrier id.
     * The carrier ID is an Android platform-wide identifier for a carrier.
     * AOSP maintains carrier ID assignments in
     * <a href="https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/master/assets/latest_carrier_id/carrier_list.textpb">here</a>
     *
     * @param carrierIdentifier {@link CarrierIdentifier}
     *
     * @return Carrier id. Return {@link #UNKNOWN_CARRIER_ID} if the carrier cannot be identified.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION}.
     *
     * @hide
     */
    @FlaggedApi(Flags.FLAG_CARRIER_ID_FROM_CARRIER_IDENTIFIER)
    @SystemApi
    @WorkerThread
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION)
    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
    public int getCarrierIdFromCarrierIdentifier(@NonNull CarrierIdentifier carrierIdentifier) {
        try {
            ITelephony service = getITelephony();
            if (service != null) {
                return service.getCarrierIdFromIdentifier(carrierIdentifier);
            }
        } catch (RemoteException ex) {
            // This could happen if binder process crashes.
        }
        return UNKNOWN_CARRIER_ID;
    }
}
+11 −0
Original line number Diff line number Diff line
@@ -3508,4 +3508,15 @@ interface ITelephony {
    * @hide
    */
    void setNtnSmsSupported(boolean ntnSmsSupported);

    /**
     * Returns carrier id maps to the passing {@link CarrierIdentifier}.
     *
     * @param {@link CarrierIdentifier}.
     *
     * @return carrier id from passing {@link CarrierIdentifier} or {@link #UNKNOWN_CARRIER_ID}
     * if the carrier cannot be identified
     * @hide
     */
    int getCarrierIdFromIdentifier(in CarrierIdentifier carrierIdentifier);
}