diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index 1a367d9b17346..f9785e9fd16e5 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -381,7 +381,12 @@ public class MediaRouter { } public Display[] getAllPresentationDisplays() { - return mDisplayService.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION); + try { + return mDisplayService.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION); + } catch (RuntimeException ex) { + Log.e(TAG, "Unable to get displays.", ex); + return null; + } } private void updatePresentationDisplays(int changedDisplayId) { @@ -2085,6 +2090,9 @@ public class MediaRouter { private Display choosePresentationDisplay() { if ((mSupportedTypes & ROUTE_TYPE_LIVE_VIDEO) != 0) { Display[] displays = sStatic.getAllPresentationDisplays(); + if (displays == null || displays.length == 0) { + return null; + } // Ensure that the specified display is valid for presentations. // This check will normally disallow the default display unless it was