New System Api: getCarrierId using carrierIdentifier
- add new system api
Bug: b/378778278
Test: atest
FLAG: com.android.internal.telephony.flags.carrier_id_from_carrier_identifier
Change-Id: Icf726def6627faa3853c4941fa15fbd67993eae7
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 440c39d..f9ed519 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -14845,4 +14845,25 @@
Binder.restoreCallingIdentity(identity);
}
}
+
+ /**
+ * Returns carrier id maps to the passing {@link CarrierIdentifier}.
+ *
+ * @param carrierIdentifier {@link CarrierIdentifier}.
+ *
+ * @return carrier id from passing {@link CarrierIdentifier} or UNKNOWN_CARRIER_ID
+ * if the carrier cannot be identified
+ */
+ public int getCarrierIdFromIdentifier(@NonNull CarrierIdentifier carrierIdentifier) {
+ enforceReadPrivilegedPermission("getCarrierIdFromIdentifier");
+ enforceTelephonyFeatureWithException(getCurrentPackageName(),
+ PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, "getCarrierIdFromIdentifier");
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return CarrierResolver.getCarrierIdFromIdentifier(mApp, carrierIdentifier);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
}