diff --git a/src/com/android/server/telecom/PhoneAccountRegistrar.java b/src/com/android/server/telecom/PhoneAccountRegistrar.java
index 0cecf09..eb6b745 100644
--- a/src/com/android/server/telecom/PhoneAccountRegistrar.java
+++ b/src/com/android/server/telecom/PhoneAccountRegistrar.java
@@ -116,25 +116,14 @@
     }
 
     /**
-     * Retrieves the phone account id for a given subscription id if it exists. Subscription ids
-     * apply only to PSTN/SIM card phone accounts so all other accounts should not have a
-     * subscription id.
-     * @param subscriptionId The subscription id for which to construct the phone account id
-     * @return The string representing the phone account id for the subscription id.
-     */
-    public String getPhoneAccountIdForSubscriptionId(long subscriptionId) {
-        return String.valueOf(subscriptionId);
-    }
-
-    /**
      * Retrieves the subscription id for a given phone account if it exists. Subscription ids
      * apply only to PSTN/SIM card phone accounts so all other accounts should not have a
      * subscription id.
      * @param accountHandle The handle for the phone account for which to retrieve the
      * subscription id.
-     * @return The value of the subscription id (long) or -1 if it does not exist or is not valid.
+     * @return The value of the subscription id or -1 if it does not exist or is not valid.
      */
-    public long getSubscriptionIdForPhoneAccount(PhoneAccountHandle accountHandle) {
+    public int getSubscriptionIdForPhoneAccount(PhoneAccountHandle accountHandle) {
         PhoneAccount account = getPhoneAccount(accountHandle);
         if (account == null || !account.hasCapabilities(PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION) ||
                 !TextUtils.isDigitsOnly(accountHandle.getId())) {
@@ -142,7 +131,7 @@
             // numbers can be subscription id
             return -1;
         }
-        return Long.parseLong(accountHandle.getId());
+        return Integer.parseInt(accountHandle.getId());
     }
 
     /**
@@ -446,7 +435,7 @@
     }
 
     public boolean isVoiceMailNumber(PhoneAccountHandle accountHandle, String number) {
-        long subId = getSubscriptionIdForPhoneAccount(accountHandle);
+        int subId = getSubscriptionIdForPhoneAccount(accountHandle);
         return PhoneNumberUtils.isVoiceMailNumber(subId, number);
     }
 
