Create getMobileProvisioningUrl in telephony

ConnectivityService is going to become mainline and can not
access hidden APIs. Telephony and Settings were both accessing
the hidden API ConnectivityManager#getMobileProvisioningUrl.
Moving #getMobileProvisioningUrl method into telephony means
that there is one less access to a hidden API within the
overall framework since the connectivity stack never needed
this value. Thus, add getMobileProvisioningUrl() to telephony
surface to replace the one in connectivity stack.

Bug: 175177794
Test: atest FrameworksTelephonyTests
Change-Id: Icff8bf39b168b28f972b6737e4e7be8fc86b3dee
This commit is contained in:
Chiachang Wang
2020-12-22 11:22:58 +08:00
parent 4ba82f5dba
commit 228306b008
2 changed files with 35 additions and 0 deletions

View File

@@ -9274,6 +9274,35 @@ public class TelephonyManager {
return false;
}
/**
* Get the mobile provisioning url that is used to launch a browser to allow users to manage
* their mobile plan.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE}.
*
* TODO: The legacy design only supports single sim design. Ideally, this should support
* multi-sim design in current world.
*
* {@hide}
*/
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public @Nullable String getMobileProvisioningUrl() {
try {
final ITelephony service = getITelephony();
if (service != null) {
return service.getMobileProvisioningUrl();
} else {
throw new IllegalStateException("telephony service is null.");
}
} catch (RemoteException ex) {
if (!isSystemProcess()) {
ex.rethrowAsRuntimeException();
}
}
return null;
}
/**
* Turns mobile data on or off.
* If this object has been created with {@link #createForSubscriptionId}, applies to the given

View File

@@ -2352,4 +2352,10 @@ interface ITelephony {
* Gets the config of RCS VoLTE single registration enabled for the carrier/subscription.
*/
boolean getCarrierSingleRegistrationEnabled(int subId);
/**
* Return the mobile provisioning url that is used to launch a browser to allow users to manage
* their mobile plan.
*/
String getMobileProvisioningUrl();
}