diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java index f9e7fec721ee1..63e3801a9b4fc 100644 --- a/telephony/java/android/telephony/SmsManager.java +++ b/telephony/java/android/telephony/SmsManager.java @@ -1958,16 +1958,24 @@ public final class SmsManager { } /** - * Get default sms subscription id + * Get default sms subscription id. * - * @return the user-defined default SMS subscription id or - * {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID} if no default is set. + *
Note:This returns a value different from + * {@link SubscriptionManager#getDefaultSmsSubscriptionId} if the user has not chosen a default. + * In this case it returns the active subscription id if there's only one active subscription + * available. + * + * @return the user-defined default SMS subscription id, or the active subscription id if + * there's only one active subscription available, otherwise + * {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID}. */ public static int getDefaultSmsSubscriptionId() { try { - return SubscriptionManager.getDefaultSmsSubscriptionId(); - } catch (NullPointerException ex) { - return -1; + return getISmsService().getPreferredSmsSubscription(); + } catch (RemoteException e) { + return SubscriptionManager.INVALID_SUBSCRIPTION_ID; + } catch (NullPointerException e) { + return SubscriptionManager.INVALID_SUBSCRIPTION_ID; } }