diff options
Diffstat (limited to 'telecomm/java/android/telecom/TelecomManager.java')
-rw-r--r-- | telecomm/java/android/telecom/TelecomManager.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index b974c567008f..eb553d3e8af3 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -2215,18 +2215,27 @@ public class TelecomManager { * @hide */ @SystemApi + @TestApi @NonNull public Intent createLaunchEmergencyDialerIntent(@Nullable String number) { ITelecomService service = getTelecomService(); - Intent result = null; if (service != null) { try { - result = service.createLaunchEmergencyDialerIntent(number); + return service.createLaunchEmergencyDialerIntent(number); } catch (RemoteException e) { Log.e(TAG, "Error createLaunchEmergencyDialerIntent", e); } + } else { + Log.w(TAG, "createLaunchEmergencyDialerIntent - Telecom service not available."); } - return result; + + // Telecom service knows the package name of the expected emergency dialer package; if it + // is not available, then fallback to not targeting a specific package. + Intent intent = new Intent(Intent.ACTION_DIAL_EMERGENCY); + if (!TextUtils.isEmpty(number) && TextUtils.isDigitsOnly(number)) { + intent.setData(Uri.fromParts(PhoneAccount.SCHEME_TEL, number, null)); + } + return intent; } /** |