Add API method to extract subscription ID from phone account (1/3)

Since Telephony uses subscription ids and Telecom uses Phone Accounts,
there should be an easy way to interface between the two. Since the
value of the subscription id and "id" of the phone account should be the
same in the case of a SIM phone account, we just need to check that the
phone account in question is a SIM phone account and convert the string
to a long.
This lays in groundwork for the following bugs:

Bug: 17925501
Bug: 17917937
Change-Id: I926e969b365d9e9878436302117e8786ec5513b8
This commit is contained in:
Nancy Chen
2014-10-08 18:47:40 -07:00
parent 1a6c41fbad
commit b0cad32c3c
2 changed files with 54 additions and 0 deletions

View File

@@ -309,6 +309,50 @@ public class TelecomManager {
}
}
/**
* Return the corresponding PhoneAccount id of a given subscription id.
*
* @param subscriptionId The value of the subscription id the caller is trying to get a phone
* account id for.
* @return A string representing the phone account id or null.
*
* @hide
*/
@SystemApi
public String getPhoneAccountIdForSubscriptionId(long subscriptionId) {
try {
if (isServiceConnected()) {
return getTelecomService().getPhoneAccountIdForSubscriptionId(subscriptionId);
}
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelecomService#getSubscriptionIdForPhoneAccount", e);
}
return null;
}
/**
* Return the subscription id of the PhoneAccount if it exists. This only applies to PSTN
* or SIM-based phone accounts. Return -1 otherwise.
*
* @param accountHandle The {@link PhoneAccountHandle} the caller is trying to get the
* subscription id for.
* @return The subscription id (a long) or -1 if the phone account is not a SIM or
* a subscription id does not exist.
*
* @hide
*/
@SystemApi
public long getSubscriptionIdForPhoneAccount(PhoneAccountHandle accountHandle) {
try {
if (isServiceConnected()) {
return getTelecomService().getSubscriptionIdForPhoneAccount(accountHandle);
}
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelecomService#getSubscriptionIdForPhoneAccount", e);
}
return -1;
}
/**
* Return the {@link PhoneAccount} which is the user-chosen default for making outgoing phone
* calls with a specified URI scheme.

View File

@@ -34,6 +34,16 @@ interface ITelecomService {
*/
void showInCallScreen(boolean showDialpad);
/**
* @see TelecomServiceImpl#getPhoneAccountIdForSubscriptionId
*/
String getPhoneAccountIdForSubscriptionId(in long subscriptionId);
/**
* @see TelecomServiceImpl#getSubscriptionIdForPhoneAccount
*/
long getSubscriptionIdForPhoneAccount(in PhoneAccountHandle account);
/**
* @see TelecomServiceImpl#getDefaultOutgoingPhoneAccount
*/