Loading api/current.txt +83 −1 Original line number Diff line number Diff line Loading @@ -26477,6 +26477,7 @@ package android.media { public final class MediaRoute2Info implements android.os.Parcelable { method public int describeContents(); method @Nullable public String getClientPackageName(); method public int getConnectionState(); method @Nullable public CharSequence getDescription(); method public int getDeviceType(); Loading @@ -26498,6 +26499,9 @@ package android.media { field public static final int DEVICE_TYPE_REMOTE_SPEAKER = 2; // 0x2 field public static final int DEVICE_TYPE_REMOTE_TV = 1; // 0x1 field public static final int DEVICE_TYPE_UNKNOWN = 0; // 0x0 field public static final String FEATURE_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO"; field public static final String FEATURE_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO"; field public static final String FEATURE_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK"; field public static final int PLAYBACK_VOLUME_FIXED = 0; // 0x0 field public static final int PLAYBACK_VOLUME_VARIABLE = 1; // 0x1 } Loading @@ -26522,9 +26526,23 @@ package android.media { public abstract class MediaRoute2ProviderService extends android.app.Service { ctor public MediaRoute2ProviderService(); method @NonNull public final java.util.List<android.media.RoutingSessionInfo> getAllSessionInfo(); method @Nullable public final android.media.RoutingSessionInfo getSessionInfo(@NonNull String); method public final void notifyRoutes(@NonNull java.util.Collection<android.media.MediaRoute2Info>); method @NonNull public android.os.IBinder onBind(@NonNull android.content.Intent); method public final void notifySessionCreated(@NonNull android.media.RoutingSessionInfo, long); method public final void notifySessionCreationFailed(long); method public final void notifySessionReleased(@NonNull String); method public final void notifySessionUpdated(@NonNull android.media.RoutingSessionInfo); method @CallSuper @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent); method public abstract void onCreateSession(@NonNull String, @NonNull String, long, @Nullable android.os.Bundle); method public abstract void onDeselectRoute(@NonNull String, @NonNull String); method public void onDiscoveryPreferenceChanged(@NonNull android.media.RouteDiscoveryPreference); method public abstract void onReleaseSession(@NonNull String); method public abstract void onSelectRoute(@NonNull String, @NonNull String); method public abstract void onSetVolume(@NonNull String, int); method public abstract void onTransferToRoute(@NonNull String, @NonNull String); method public abstract void onUpdateVolume(@NonNull String, int); field public static final long REQUEST_ID_UNKNOWN = 0L; // 0x0L field public static final String SERVICE_INTERFACE = "android.media.MediaRoute2ProviderService"; } Loading Loading @@ -26652,12 +26670,22 @@ package android.media { } public class MediaRouter2 { method @NonNull public java.util.List<android.media.MediaRouter2.RoutingController> getControllers(); method @NonNull public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context); method @NonNull public java.util.List<android.media.MediaRoute2Info> getRoutes(); method @NonNull public android.media.MediaRouter2.RoutingController getSystemController(); method public void registerControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RoutingControllerCallback); method public void registerRouteCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RouteCallback, @NonNull android.media.RouteDiscoveryPreference); method public void requestCreateController(@NonNull android.media.MediaRoute2Info); method public void setOnGetControllerHintsListener(@Nullable android.media.MediaRouter2.OnGetControllerHintsListener); method public void unregisterControllerCallback(@NonNull android.media.MediaRouter2.RoutingControllerCallback); method public void unregisterRouteCallback(@NonNull android.media.MediaRouter2.RouteCallback); } public static interface MediaRouter2.OnGetControllerHintsListener { method @Nullable public android.os.Bundle onGetControllerHints(@NonNull android.media.MediaRoute2Info); } public static class MediaRouter2.RouteCallback { ctor public MediaRouter2.RouteCallback(); method public void onRoutesAdded(@NonNull java.util.List<android.media.MediaRoute2Info>); Loading @@ -26665,6 +26693,28 @@ package android.media { method public void onRoutesRemoved(@NonNull java.util.List<android.media.MediaRoute2Info>); } public class MediaRouter2.RoutingController { method public void deselectRoute(@NonNull android.media.MediaRoute2Info); method @Nullable public android.os.Bundle getControlHints(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getDeselectableRoutes(); method @NonNull public String getId(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getSelectableRoutes(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getSelectedRoutes(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getTransferrableRoutes(); method public boolean isReleased(); method public void release(); method public void selectRoute(@NonNull android.media.MediaRoute2Info); method public void transferToRoute(@NonNull android.media.MediaRoute2Info); } public static class MediaRouter2.RoutingControllerCallback { ctor public MediaRouter2.RoutingControllerCallback(); method public void onControllerCreated(@NonNull android.media.MediaRouter2.RoutingController); method public void onControllerCreationFailed(@NonNull android.media.MediaRoute2Info); method public void onControllerReleased(@NonNull android.media.MediaRouter2.RoutingController); method public void onControllerUpdated(@NonNull android.media.MediaRouter2.RoutingController); } public class MediaScannerConnection implements android.content.ServiceConnection { ctor public MediaScannerConnection(android.content.Context, android.media.MediaScannerConnection.MediaScannerConnectionClient); method public void connect(); Loading Loading @@ -27039,6 +27089,38 @@ package android.media { method @NonNull public android.media.RouteDiscoveryPreference.Builder setPreferredFeatures(@NonNull java.util.List<java.lang.String>); } public final class RoutingSessionInfo implements android.os.Parcelable { method public int describeContents(); method @NonNull public String getClientPackageName(); method @Nullable public android.os.Bundle getControlHints(); method @NonNull public java.util.List<java.lang.String> getDeselectableRoutes(); method @NonNull public String getId(); method @NonNull public java.util.List<java.lang.String> getSelectableRoutes(); method @NonNull public java.util.List<java.lang.String> getSelectedRoutes(); method @NonNull public java.util.List<java.lang.String> getTransferrableRoutes(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.media.RoutingSessionInfo> CREATOR; } public static final class RoutingSessionInfo.Builder { ctor public RoutingSessionInfo.Builder(@NonNull String, @NonNull String); ctor public RoutingSessionInfo.Builder(@NonNull android.media.RoutingSessionInfo); method @NonNull public android.media.RoutingSessionInfo.Builder addDeselectableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder addSelectableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder addSelectedRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder addTransferrableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo build(); method @NonNull public android.media.RoutingSessionInfo.Builder clearDeselectableRoutes(); method @NonNull public android.media.RoutingSessionInfo.Builder clearSelectableRoutes(); method @NonNull public android.media.RoutingSessionInfo.Builder clearSelectedRoutes(); method @NonNull public android.media.RoutingSessionInfo.Builder clearTransferrableRoutes(); method @NonNull public android.media.RoutingSessionInfo.Builder removeDeselectableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder removeSelectableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder removeSelectedRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder removeTransferrableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder setControlHints(@Nullable android.os.Bundle); } public final class Session2Command implements android.os.Parcelable { ctor public Session2Command(int); ctor public Session2Command(@NonNull String, @Nullable android.os.Bundle); media/java/android/media/MediaRoute2Info.java +55 −3 Original line number Diff line number Diff line Loading @@ -134,6 +134,59 @@ public final class MediaRoute2Info implements Parcelable { */ public static final int DEVICE_TYPE_BLUETOOTH = 3; /** * Media feature: Live audio. * <p> * A route that supports live audio routing will allow the media audio stream * to be sent to supported destinations. This can include internal speakers or * audio jacks on the device itself, A2DP devices, and more. * </p><p> * When a live audio route is selected, audio routing is transparent to the application. * All audio played on the media stream will be routed to the selected destination. * </p><p> * Refer to the class documentation for details about live audio routes. * </p> */ public static final String FEATURE_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO"; /** * Media feature: Live video. * <p> * A route that supports live video routing will allow a mirrored version * of the device's primary display or a customized * {@link android.app.Presentation Presentation} to be sent to supported * destinations. * </p><p> * When a live video route is selected, audio and video routing is transparent * to the application. By default, audio and video is routed to the selected * destination. For certain live video routes, the application may also use a * {@link android.app.Presentation Presentation} to replace the mirrored view * on the external display with different content. * </p><p> * Refer to the class documentation for details about live video routes. * </p> * * @see android.app.Presentation */ public static final String FEATURE_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO"; /** * Media feature: Remote playback. * <p> * A route that supports remote playback routing will allow an application to send * requests to play content remotely to supported destinations. * </p><p> * Remote playback routes destinations operate independently of the local device. * When a remote playback route is selected, the application can control the content * playing on the destination using {@link MediaRouter2.RoutingController#getControlHints()}. * The application may also receive status updates from the route regarding remote playback. * </p><p> * Refer to the class documentation for details about remote playback routes. * </p> */ public static final String FEATURE_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK"; final String mId; final CharSequence mName; final List<String> mFeatures; Loading Loading @@ -260,9 +313,8 @@ public final class MediaRoute2Info implements Parcelable { } /** * Gets the package name of the client that uses the route. * Returns null if no clients use this route. * @hide * Gets the package name of the app using the route. * Returns null if no apps are using this route. */ @Nullable public String getClientPackageName() { Loading media/java/android/media/MediaRoute2ProviderService.java +10 −18 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.media; import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage; import android.annotation.CallSuper; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.Service; Loading Loading @@ -64,7 +65,6 @@ public abstract class MediaRoute2ProviderService extends Service { * request. * * @see #notifySessionCreated(RoutingSessionInfo, long) * @hide */ public static final long REQUEST_ID_UNKNOWN = 0; Loading @@ -82,8 +82,14 @@ public abstract class MediaRoute2ProviderService extends Service { mHandler = new Handler(Looper.getMainLooper()); } /** * If overriding this method, call through to the super method for any unknown actions. * <p> * {@inheritDoc} */ @CallSuper @Override @NonNull @Nullable public IBinder onBind(@NonNull Intent intent) { //TODO: Allow binding from media router service only? if (SERVICE_INTERFACE.equals(intent.getAction())) { Loading @@ -110,7 +116,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param routeId the id of the route * @param volume the target volume * @hide */ public abstract void onSetVolume(@NonNull String routeId, int volume); Loading @@ -119,7 +124,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param routeId id of the route * @param delta the delta to add to the current volume * @hide */ public abstract void onUpdateVolume(@NonNull String routeId, int delta); Loading @@ -129,7 +133,6 @@ public abstract class MediaRoute2ProviderService extends Service { * @param sessionId id of the session * @return information of the session with the given id. * null if the session is released or ID is not valid. * @hide */ @Nullable public final RoutingSessionInfo getSessionInfo(@NonNull String sessionId) { Loading @@ -143,7 +146,6 @@ public abstract class MediaRoute2ProviderService extends Service { /** * Gets the list of {@link RoutingSessionInfo session info} that the provider service maintains. * @hide */ @NonNull public final List<RoutingSessionInfo> getAllSessionInfo() { Loading @@ -163,7 +165,7 @@ public abstract class MediaRoute2ProviderService extends Service { * @param requestId id of the previous request to create this session provided in * {@link #onCreateSession(String, String, long, Bundle)} * @see #onCreateSession(String, String, long, Bundle) * @hide * @see #getSessionInfo(String) */ public final void notifySessionCreated(@NonNull RoutingSessionInfo sessionInfo, long requestId) { Loading Loading @@ -197,7 +199,6 @@ public abstract class MediaRoute2ProviderService extends Service { * @param requestId id of the previous request to create the session provided in * {@link #onCreateSession(String, String, long, Bundle)}. * @see #onCreateSession(String, String, long, Bundle) * @hide */ public final void notifySessionCreationFailed(long requestId) { if (mClient == null) { Loading @@ -213,8 +214,6 @@ public abstract class MediaRoute2ProviderService extends Service { /** * Notifies the existing session is updated. For example, when * {@link RoutingSessionInfo#getSelectedRoutes() selected routes} are changed. * * @hide */ public final void notifySessionUpdated(@NonNull RoutingSessionInfo sessionInfo) { Objects.requireNonNull(sessionInfo, "sessionInfo must not be null"); Loading Loading @@ -244,7 +243,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param sessionId id of the released session. * @see #onReleaseSession(String) * @hide */ public final void notifySessionReleased(@NonNull String sessionId) { if (TextUtils.isEmpty(sessionId)) { Loading Loading @@ -296,7 +294,6 @@ public abstract class MediaRoute2ProviderService extends Service { * @see RoutingSessionInfo.Builder#Builder(String, String) * @see RoutingSessionInfo.Builder#addSelectedRoute(String) * @see RoutingSessionInfo.Builder#setControlHints(Bundle) * @hide */ public abstract void onCreateSession(@NonNull String packageName, @NonNull String routeId, long requestId, @Nullable Bundle sessionHints); Loading @@ -314,7 +311,6 @@ public abstract class MediaRoute2ProviderService extends Service { * @param sessionId id of the session being released. * @see #notifySessionReleased(String) * @see #getSessionInfo(String) * @hide */ public abstract void onReleaseSession(@NonNull String sessionId); Loading @@ -326,7 +322,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param sessionId id of the session * @param routeId id of the route * @hide */ public abstract void onSelectRoute(@NonNull String sessionId, @NonNull String routeId); Loading @@ -338,7 +333,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param sessionId id of the session * @param routeId id of the route * @hide */ public abstract void onDeselectRoute(@NonNull String sessionId, @NonNull String routeId); Loading @@ -350,7 +344,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param sessionId id of the session * @param routeId id of the route * @hide */ public abstract void onTransferToRoute(@NonNull String sessionId, @NonNull String routeId); Loading @@ -370,9 +363,8 @@ public abstract class MediaRoute2ProviderService extends Service { * </p> * * @param preference the new discovery preference * * TODO: This method needs tests. */ // TODO: This method needs tests. public void onDiscoveryPreferenceChanged(@NonNull RouteDiscoveryPreference preference) {} /** Loading media/java/android/media/MediaRouter2.java +177 −170 File changed.Preview size limit exceeded, changes collapsed. Show changes media/java/android/media/RoutingSessionInfo.java +0 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import java.util.Objects; /** * Describes a routing session which is created when a media route is selected. * @hide */ public final class RoutingSessionInfo implements Parcelable { @NonNull Loading Loading
api/current.txt +83 −1 Original line number Diff line number Diff line Loading @@ -26477,6 +26477,7 @@ package android.media { public final class MediaRoute2Info implements android.os.Parcelable { method public int describeContents(); method @Nullable public String getClientPackageName(); method public int getConnectionState(); method @Nullable public CharSequence getDescription(); method public int getDeviceType(); Loading @@ -26498,6 +26499,9 @@ package android.media { field public static final int DEVICE_TYPE_REMOTE_SPEAKER = 2; // 0x2 field public static final int DEVICE_TYPE_REMOTE_TV = 1; // 0x1 field public static final int DEVICE_TYPE_UNKNOWN = 0; // 0x0 field public static final String FEATURE_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO"; field public static final String FEATURE_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO"; field public static final String FEATURE_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK"; field public static final int PLAYBACK_VOLUME_FIXED = 0; // 0x0 field public static final int PLAYBACK_VOLUME_VARIABLE = 1; // 0x1 } Loading @@ -26522,9 +26526,23 @@ package android.media { public abstract class MediaRoute2ProviderService extends android.app.Service { ctor public MediaRoute2ProviderService(); method @NonNull public final java.util.List<android.media.RoutingSessionInfo> getAllSessionInfo(); method @Nullable public final android.media.RoutingSessionInfo getSessionInfo(@NonNull String); method public final void notifyRoutes(@NonNull java.util.Collection<android.media.MediaRoute2Info>); method @NonNull public android.os.IBinder onBind(@NonNull android.content.Intent); method public final void notifySessionCreated(@NonNull android.media.RoutingSessionInfo, long); method public final void notifySessionCreationFailed(long); method public final void notifySessionReleased(@NonNull String); method public final void notifySessionUpdated(@NonNull android.media.RoutingSessionInfo); method @CallSuper @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent); method public abstract void onCreateSession(@NonNull String, @NonNull String, long, @Nullable android.os.Bundle); method public abstract void onDeselectRoute(@NonNull String, @NonNull String); method public void onDiscoveryPreferenceChanged(@NonNull android.media.RouteDiscoveryPreference); method public abstract void onReleaseSession(@NonNull String); method public abstract void onSelectRoute(@NonNull String, @NonNull String); method public abstract void onSetVolume(@NonNull String, int); method public abstract void onTransferToRoute(@NonNull String, @NonNull String); method public abstract void onUpdateVolume(@NonNull String, int); field public static final long REQUEST_ID_UNKNOWN = 0L; // 0x0L field public static final String SERVICE_INTERFACE = "android.media.MediaRoute2ProviderService"; } Loading Loading @@ -26652,12 +26670,22 @@ package android.media { } public class MediaRouter2 { method @NonNull public java.util.List<android.media.MediaRouter2.RoutingController> getControllers(); method @NonNull public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context); method @NonNull public java.util.List<android.media.MediaRoute2Info> getRoutes(); method @NonNull public android.media.MediaRouter2.RoutingController getSystemController(); method public void registerControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RoutingControllerCallback); method public void registerRouteCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RouteCallback, @NonNull android.media.RouteDiscoveryPreference); method public void requestCreateController(@NonNull android.media.MediaRoute2Info); method public void setOnGetControllerHintsListener(@Nullable android.media.MediaRouter2.OnGetControllerHintsListener); method public void unregisterControllerCallback(@NonNull android.media.MediaRouter2.RoutingControllerCallback); method public void unregisterRouteCallback(@NonNull android.media.MediaRouter2.RouteCallback); } public static interface MediaRouter2.OnGetControllerHintsListener { method @Nullable public android.os.Bundle onGetControllerHints(@NonNull android.media.MediaRoute2Info); } public static class MediaRouter2.RouteCallback { ctor public MediaRouter2.RouteCallback(); method public void onRoutesAdded(@NonNull java.util.List<android.media.MediaRoute2Info>); Loading @@ -26665,6 +26693,28 @@ package android.media { method public void onRoutesRemoved(@NonNull java.util.List<android.media.MediaRoute2Info>); } public class MediaRouter2.RoutingController { method public void deselectRoute(@NonNull android.media.MediaRoute2Info); method @Nullable public android.os.Bundle getControlHints(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getDeselectableRoutes(); method @NonNull public String getId(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getSelectableRoutes(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getSelectedRoutes(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getTransferrableRoutes(); method public boolean isReleased(); method public void release(); method public void selectRoute(@NonNull android.media.MediaRoute2Info); method public void transferToRoute(@NonNull android.media.MediaRoute2Info); } public static class MediaRouter2.RoutingControllerCallback { ctor public MediaRouter2.RoutingControllerCallback(); method public void onControllerCreated(@NonNull android.media.MediaRouter2.RoutingController); method public void onControllerCreationFailed(@NonNull android.media.MediaRoute2Info); method public void onControllerReleased(@NonNull android.media.MediaRouter2.RoutingController); method public void onControllerUpdated(@NonNull android.media.MediaRouter2.RoutingController); } public class MediaScannerConnection implements android.content.ServiceConnection { ctor public MediaScannerConnection(android.content.Context, android.media.MediaScannerConnection.MediaScannerConnectionClient); method public void connect(); Loading Loading @@ -27039,6 +27089,38 @@ package android.media { method @NonNull public android.media.RouteDiscoveryPreference.Builder setPreferredFeatures(@NonNull java.util.List<java.lang.String>); } public final class RoutingSessionInfo implements android.os.Parcelable { method public int describeContents(); method @NonNull public String getClientPackageName(); method @Nullable public android.os.Bundle getControlHints(); method @NonNull public java.util.List<java.lang.String> getDeselectableRoutes(); method @NonNull public String getId(); method @NonNull public java.util.List<java.lang.String> getSelectableRoutes(); method @NonNull public java.util.List<java.lang.String> getSelectedRoutes(); method @NonNull public java.util.List<java.lang.String> getTransferrableRoutes(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.media.RoutingSessionInfo> CREATOR; } public static final class RoutingSessionInfo.Builder { ctor public RoutingSessionInfo.Builder(@NonNull String, @NonNull String); ctor public RoutingSessionInfo.Builder(@NonNull android.media.RoutingSessionInfo); method @NonNull public android.media.RoutingSessionInfo.Builder addDeselectableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder addSelectableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder addSelectedRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder addTransferrableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo build(); method @NonNull public android.media.RoutingSessionInfo.Builder clearDeselectableRoutes(); method @NonNull public android.media.RoutingSessionInfo.Builder clearSelectableRoutes(); method @NonNull public android.media.RoutingSessionInfo.Builder clearSelectedRoutes(); method @NonNull public android.media.RoutingSessionInfo.Builder clearTransferrableRoutes(); method @NonNull public android.media.RoutingSessionInfo.Builder removeDeselectableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder removeSelectableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder removeSelectedRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder removeTransferrableRoute(@NonNull String); method @NonNull public android.media.RoutingSessionInfo.Builder setControlHints(@Nullable android.os.Bundle); } public final class Session2Command implements android.os.Parcelable { ctor public Session2Command(int); ctor public Session2Command(@NonNull String, @Nullable android.os.Bundle);
media/java/android/media/MediaRoute2Info.java +55 −3 Original line number Diff line number Diff line Loading @@ -134,6 +134,59 @@ public final class MediaRoute2Info implements Parcelable { */ public static final int DEVICE_TYPE_BLUETOOTH = 3; /** * Media feature: Live audio. * <p> * A route that supports live audio routing will allow the media audio stream * to be sent to supported destinations. This can include internal speakers or * audio jacks on the device itself, A2DP devices, and more. * </p><p> * When a live audio route is selected, audio routing is transparent to the application. * All audio played on the media stream will be routed to the selected destination. * </p><p> * Refer to the class documentation for details about live audio routes. * </p> */ public static final String FEATURE_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO"; /** * Media feature: Live video. * <p> * A route that supports live video routing will allow a mirrored version * of the device's primary display or a customized * {@link android.app.Presentation Presentation} to be sent to supported * destinations. * </p><p> * When a live video route is selected, audio and video routing is transparent * to the application. By default, audio and video is routed to the selected * destination. For certain live video routes, the application may also use a * {@link android.app.Presentation Presentation} to replace the mirrored view * on the external display with different content. * </p><p> * Refer to the class documentation for details about live video routes. * </p> * * @see android.app.Presentation */ public static final String FEATURE_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO"; /** * Media feature: Remote playback. * <p> * A route that supports remote playback routing will allow an application to send * requests to play content remotely to supported destinations. * </p><p> * Remote playback routes destinations operate independently of the local device. * When a remote playback route is selected, the application can control the content * playing on the destination using {@link MediaRouter2.RoutingController#getControlHints()}. * The application may also receive status updates from the route regarding remote playback. * </p><p> * Refer to the class documentation for details about remote playback routes. * </p> */ public static final String FEATURE_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK"; final String mId; final CharSequence mName; final List<String> mFeatures; Loading Loading @@ -260,9 +313,8 @@ public final class MediaRoute2Info implements Parcelable { } /** * Gets the package name of the client that uses the route. * Returns null if no clients use this route. * @hide * Gets the package name of the app using the route. * Returns null if no apps are using this route. */ @Nullable public String getClientPackageName() { Loading
media/java/android/media/MediaRoute2ProviderService.java +10 −18 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.media; import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage; import android.annotation.CallSuper; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.Service; Loading Loading @@ -64,7 +65,6 @@ public abstract class MediaRoute2ProviderService extends Service { * request. * * @see #notifySessionCreated(RoutingSessionInfo, long) * @hide */ public static final long REQUEST_ID_UNKNOWN = 0; Loading @@ -82,8 +82,14 @@ public abstract class MediaRoute2ProviderService extends Service { mHandler = new Handler(Looper.getMainLooper()); } /** * If overriding this method, call through to the super method for any unknown actions. * <p> * {@inheritDoc} */ @CallSuper @Override @NonNull @Nullable public IBinder onBind(@NonNull Intent intent) { //TODO: Allow binding from media router service only? if (SERVICE_INTERFACE.equals(intent.getAction())) { Loading @@ -110,7 +116,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param routeId the id of the route * @param volume the target volume * @hide */ public abstract void onSetVolume(@NonNull String routeId, int volume); Loading @@ -119,7 +124,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param routeId id of the route * @param delta the delta to add to the current volume * @hide */ public abstract void onUpdateVolume(@NonNull String routeId, int delta); Loading @@ -129,7 +133,6 @@ public abstract class MediaRoute2ProviderService extends Service { * @param sessionId id of the session * @return information of the session with the given id. * null if the session is released or ID is not valid. * @hide */ @Nullable public final RoutingSessionInfo getSessionInfo(@NonNull String sessionId) { Loading @@ -143,7 +146,6 @@ public abstract class MediaRoute2ProviderService extends Service { /** * Gets the list of {@link RoutingSessionInfo session info} that the provider service maintains. * @hide */ @NonNull public final List<RoutingSessionInfo> getAllSessionInfo() { Loading @@ -163,7 +165,7 @@ public abstract class MediaRoute2ProviderService extends Service { * @param requestId id of the previous request to create this session provided in * {@link #onCreateSession(String, String, long, Bundle)} * @see #onCreateSession(String, String, long, Bundle) * @hide * @see #getSessionInfo(String) */ public final void notifySessionCreated(@NonNull RoutingSessionInfo sessionInfo, long requestId) { Loading Loading @@ -197,7 +199,6 @@ public abstract class MediaRoute2ProviderService extends Service { * @param requestId id of the previous request to create the session provided in * {@link #onCreateSession(String, String, long, Bundle)}. * @see #onCreateSession(String, String, long, Bundle) * @hide */ public final void notifySessionCreationFailed(long requestId) { if (mClient == null) { Loading @@ -213,8 +214,6 @@ public abstract class MediaRoute2ProviderService extends Service { /** * Notifies the existing session is updated. For example, when * {@link RoutingSessionInfo#getSelectedRoutes() selected routes} are changed. * * @hide */ public final void notifySessionUpdated(@NonNull RoutingSessionInfo sessionInfo) { Objects.requireNonNull(sessionInfo, "sessionInfo must not be null"); Loading Loading @@ -244,7 +243,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param sessionId id of the released session. * @see #onReleaseSession(String) * @hide */ public final void notifySessionReleased(@NonNull String sessionId) { if (TextUtils.isEmpty(sessionId)) { Loading Loading @@ -296,7 +294,6 @@ public abstract class MediaRoute2ProviderService extends Service { * @see RoutingSessionInfo.Builder#Builder(String, String) * @see RoutingSessionInfo.Builder#addSelectedRoute(String) * @see RoutingSessionInfo.Builder#setControlHints(Bundle) * @hide */ public abstract void onCreateSession(@NonNull String packageName, @NonNull String routeId, long requestId, @Nullable Bundle sessionHints); Loading @@ -314,7 +311,6 @@ public abstract class MediaRoute2ProviderService extends Service { * @param sessionId id of the session being released. * @see #notifySessionReleased(String) * @see #getSessionInfo(String) * @hide */ public abstract void onReleaseSession(@NonNull String sessionId); Loading @@ -326,7 +322,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param sessionId id of the session * @param routeId id of the route * @hide */ public abstract void onSelectRoute(@NonNull String sessionId, @NonNull String routeId); Loading @@ -338,7 +333,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param sessionId id of the session * @param routeId id of the route * @hide */ public abstract void onDeselectRoute(@NonNull String sessionId, @NonNull String routeId); Loading @@ -350,7 +344,6 @@ public abstract class MediaRoute2ProviderService extends Service { * * @param sessionId id of the session * @param routeId id of the route * @hide */ public abstract void onTransferToRoute(@NonNull String sessionId, @NonNull String routeId); Loading @@ -370,9 +363,8 @@ public abstract class MediaRoute2ProviderService extends Service { * </p> * * @param preference the new discovery preference * * TODO: This method needs tests. */ // TODO: This method needs tests. public void onDiscoveryPreferenceChanged(@NonNull RouteDiscoveryPreference preference) {} /** Loading
media/java/android/media/MediaRouter2.java +177 −170 File changed.Preview size limit exceeded, changes collapsed. Show changes
media/java/android/media/RoutingSessionInfo.java +0 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import java.util.Objects; /** * Describes a routing session which is created when a media route is selected. * @hide */ public final class RoutingSessionInfo implements Parcelable { @NonNull Loading