diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
index 7c5eb6b..fdd9e25 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
@@ -25,7 +25,9 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.Bundle;
-import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.util.Log;
 import android.view.View;
 import android.widget.Button;
@@ -37,6 +39,9 @@
 import com.android.internal.app.AlertActivity;
 import com.android.internal.app.AlertController;
 import com.android.settings.R;
+import com.android.settings.network.SubscriptionUtil;
+
+import java.util.List;
 
 /**
  * BluetoothPermissionActivity shows a dialog for accepting incoming
@@ -184,11 +189,10 @@
 
     private View createSapDialogView() {
         String mRemoteName = Utils.createRemoteName(this, mDevice);
-        TelephonyManager tm = getSystemService(TelephonyManager.class);
         mView = getLayoutInflater().inflate(R.layout.bluetooth_access, null);
         messageView = (TextView)mView.findViewById(R.id.message);
         messageView.setText(getString(R.string.bluetooth_sim_card_access_dialog_content,
-                mRemoteName, mRemoteName, tm.getLine1Number()));
+                mRemoteName, mRemoteName, getAnyPhoneNumberFromSubscriptions()));
         return mView;
     }
 
@@ -247,4 +251,17 @@
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         return true;
     }
+
+    // find any phone number available from active subscriptions
+    String getAnyPhoneNumberFromSubscriptions() {
+        SubscriptionManager sm = getSystemService(SubscriptionManager.class);
+        List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(sm);
+        if ((subs == null) || (subs.size() == 0)) {
+            return "";
+        }
+        return subs.stream()
+                .map(subinfo -> SubscriptionUtil.getFormattedPhoneNumber(this, subinfo))
+                .filter(phoneNumber -> !TextUtils.isEmpty(phoneNumber))
+                .findAny().orElse("");
+    }
 }
