diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java index 46e4ff712..28a8e3a8f 100644 --- a/src/com/android/server/telecom/TelecomServiceImpl.java +++ b/src/com/android/server/telecom/TelecomServiceImpl.java @@ -3887,6 +3887,16 @@ private boolean canGetPhoneAccount(String callingPackage, PhoneAccountHandle acc // ignore } + // Needed for calls with multi sim phones, since AA cannot hold + // READ_PRIVILEGED_PHONE_STATE as a sandboxed app, causing getPhoneAccount() + // to fail and SIM selection to never appear. Mirrors getUserSelectedOutgoingPhoneAccount. + try { + mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE_ANDROID_AUTO, null); + return true; + } catch (SecurityException e) { + // ignore + } + try { mContext.enforceCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE, null); return true;