OSDN Git Service

Add media router service and integrate with remote displays.
authorJeff Brown <jeffbrown@google.com>
Thu, 7 Nov 2013 08:30:16 +0000 (00:30 -0800)
committerJeff Brown <jeffbrown@google.com>
Thu, 7 Nov 2013 11:25:37 +0000 (03:25 -0800)
commit69b07161bebdb2c726e3a826c2268866f1a94517
tree8d9c94f32a045a8f5c48ca0f1380abc760eac807
parentf3c99e883f46c56e5e2877e844b902b6eb45545b
Add media router service and integrate with remote displays.

This change adds a new media router service whose purpose is to track
global state information associated with media routes.  This service
publishes routes to the media router instance in application processes
and handles requested state changes such as selecting or unselecting
global routes.  The service also binds to remote display provider
services which can offer new remote display routes to the system.

Includes a test application for manually verifying certain aspects
of the operation of the media router service.

The remote display provider interface is essentially a stripped down
media route provider interface as defined in the support library
media router implementation.  For now, it is designed to be used only
by first parties to publish remote display routes to the system so
it is not exposed as public API in the SDK.  In the future, the remote
display provider interface will most likely be deprecated and replaced
with a more featureful media route provider interface for third
party integration, similar to what is in the support library today.

Further patch sets integrate these new capabilities into the System UI
and Settings for connecting remote displays.

Bug: 11257292
Change-Id: I31109f23f17b474d17534d0f5f4503e388b081c2
22 files changed:
Android.mk
core/java/android/app/MediaRouteActionProvider.java
core/java/android/app/MediaRouteButton.java
core/java/android/view/Display.java
core/java/com/android/internal/app/MediaRouteChooserDialogFragment.java
media/java/android/media/IMediaRouterClient.aidl [new file with mode: 0644]
media/java/android/media/IMediaRouterService.aidl [new file with mode: 0644]
media/java/android/media/MediaRouter.java
media/java/android/media/MediaRouterClientState.aidl [new file with mode: 0644]
media/java/android/media/MediaRouterClientState.java [new file with mode: 0644]
services/java/com/android/server/SystemServer.java
services/java/com/android/server/input/InputManagerService.java
services/java/com/android/server/media/MediaRouterService.java [new file with mode: 0644]
services/java/com/android/server/media/RemoteDisplayProviderProxy.java [new file with mode: 0644]
services/java/com/android/server/media/RemoteDisplayProviderWatcher.java [new file with mode: 0644]
tests/RemoteDisplayProvider/Android.mk [new file with mode: 0644]
tests/RemoteDisplayProvider/AndroidManifest.xml [new file with mode: 0644]
tests/RemoteDisplayProvider/README [new file with mode: 0644]
tests/RemoteDisplayProvider/res/drawable-hdpi/ic_app.png [new file with mode: 0755]
tests/RemoteDisplayProvider/res/drawable-mdpi/ic_app.png [new file with mode: 0644]
tests/RemoteDisplayProvider/res/values/strings.xml [new file with mode: 0644]
tests/RemoteDisplayProvider/src/com/android/media/remotedisplay/test/RemoteDisplayProviderService.java [new file with mode: 0644]