diff --git a/media/java/android/media/session/MediaController.java b/media/java/android/media/session/MediaController.java index a5cb85fa13885..6890dfee6b117 100644 --- a/media/java/android/media/session/MediaController.java +++ b/media/java/android/media/session/MediaController.java @@ -625,14 +625,18 @@ public final class MediaController { /** * Request that the player start playback for a specific search query. + * An empty or null query should be treated as a request to play any + * music. * * @param query The search query. - * @param extras Optional extras that can include extra information about the query. + * @param extras Optional extras that can include extra information + * about the query. */ public void playFromSearch(String query, Bundle extras) { - if (TextUtils.isEmpty(query)) { - throw new IllegalArgumentException( - "You must specify a non-empty search query for playFromSearch."); + if (query == null) { + // This is to remain compatible with + // INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH + query = ""; } try { mSessionBinder.playFromSearch(query, extras); diff --git a/media/java/android/media/session/MediaSession.java b/media/java/android/media/session/MediaSession.java index 0c7c0974e61df..aaa1ada33362f 100644 --- a/media/java/android/media/session/MediaSession.java +++ b/media/java/android/media/session/MediaSession.java @@ -789,7 +789,10 @@ public final class MediaSession { } /** - * Override to handle requests to begin playback from a search query. + * Override to handle requests to begin playback from a search query. An + * empty query indicates that the app may play any music. The + * implementation should attempt to make a smart choice about what to + * play. */ public void onPlayFromSearch(String query, Bundle extras) { }