History log of /frameworks/base/media/java/android/media/session/MediaSessionManager.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d86b8fea43ebb6e5c31691b44d8ceb0d8d3c9072 03-Jun-2017 Jeff Sharkey <jsharkey@android.com> Annotate @SystemApi with required permissions.

Most @SystemApi methods should be protected with system (or higher)
permissions, so annotate common methods with @RequiresPermission to
make automatic verification easier.

Verification is really only relevant when calling into system
services (where permissions checking can happen on the other side of
a Binder call), so annotate managers with the new @SystemService
annotation, which is now automatically documented.

This is purely a docs change; no logic changes are being made.

Test: make -j32 update-api && make -j32 offline-sdk-docs
Bug: 62263906
Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
bd16f457a181b8dd32305cedc71ea492a3450739 03-Feb-2017 Jaewan Kim <jaewan@google.com> Add callback for AVRCP 1.6 support

Bug: 33828042
Test: Build
Change-Id: Iaf5cecfa38065cfeed096929952559d7cb2e248b
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
98003d36ddf10d1bf92d2a172da44bdd83512538 24-Feb-2017 Jaewan Kim <jaewan@google.com> Send long-press of KEYCODE_HEADSETHOOK to the media key listener

For the key events with the code KEYCODE_HEADSETHOOK, the
MediaSessionService always starts the voice input for long-presses
regardless of the media key listener, and only short-presses can be sent
to the media key listener.

This CL sends all media key events to the media key listener first
if the listener is set. If the key event isn't consumed, short-presses
will be sent to the media session and long-presses will start the voice
input.

Bug: 35348856
Test: Manual test (Install the OnMediaKeyListener test app and confirm
that the app can consume the media key long-press)
Change-Id: I82f8e5f355efe16867e6f4345c46470c690e1f80
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
6e2b01ce75fb1d5647d5d788d8a5644c30cb3068 20-Jan-2017 Jaewan Kim <jaewan@google.com> Allow privileged app to set media key event listener

If the media key listener is set, the listener will receive the media key
events before any other sessions, but after the global priority session.
If the event is handled by the listener, other sessions cannot get the event.

Privileged app needs permission android.permission.SET_MEDIA_KEY_LISTENER
to set the listener.

Bug: 30125811
Change-Id: I2b2cf4ac7873b70899194701c6921990dcb9de02
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
5026936e49540449165fd5881231f8970a29ea91 23-Dec-2016 Jaewan Kim <jaewan@google.com> Allow privileged app to set volume key long-press listener

If the volume long-press listener is set, the listener will receive
the volume key long-presses instead of chaging the volume.

Privileged app needs permission
android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER to set the listener.

Bug: 30125811
Change-Id: I5e8fafbb950e5e11522da0f14004648d0877bf3e
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
d2ed690187c41d1cd260f1d754d7ef9ef5aa383f 07-Jul-2015 Dongwon Kang <dwkang@google.com> MediaSessionManager: make the binder implementation static

Removing references to application resources on unregistering so that they
can be GCed as ealry as possible.

Bug: https://code.google.com/p/android/issues/detail?id=161398
Change-Id: Icc083f4a58bb5e738aa662247dc83d021a9dc5c3
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
4197cb60bc74629fe4c04ab10cb3b1c9a7427d24 22-Jan-2015 RoboErik <epastern@google.com> Move mute/unmute handling to adjust volume paths

This deprecates the setStreamMute and setStreamSolo APIs. Soloing is no
longer supported and muting is redirected through the adjust volume APIs.

Also updates the hidden master versions of these APIs.

Change-Id: I65d2a5d5fc15b386bd497abf8ca6869fec75a26a
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
7c82ced4fc5b66c09a19eed9a5499039530142fb 05-Dec-2014 RoboErik <epastern@google.com> Route mute key events through MediaSessionService

This sends mute keys to the MediaSessionService and handles them
by toggling the appropriate stream. Muting remote playback is still
not supported.

bug:17501993
Change-Id: I18c5b037cde2175acbb64b118dd708514acfd8c9
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
de9ba39c1714f5bc9e1785d8224ad26c132b6293 26-Sep-2014 RoboErik <epastern@google.com> Don't forward media keys to the app if the phone session is active

This checks if the phone app is currently getting or in a call when a
media key event is sent and sends it to the phone session instead of the
foreground app if it is.

bug:17527302
Change-Id: Ie5d6cf0c897da81d106f2b1a0561b79f4fc35e82
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
d2b8c947ddfc6349a3ae6c3968b422b9cf50d7ed 19-Aug-2014 RoboErik <epastern@google.com> Api updates to MediaSession components

-renames get/setBufferPosition to get/setBufferedPosition
-renames getLaunchActivity to getSessionActivity
-adds doc link to setVolumeTo flags param
-renames setLaunchActivity to setSessionActivity
-hides setMediaRouter
-moves PLAYBACK_TYPE_ constants to MediaController.AudioInfo
-adds addOnActiveSessionsChangedListener version with a handler parameter
-renames AudioInfo to PlaybackInfo

bug:17114404
Change-Id: I0fbfe4eb979cb2af98e3f13095c654bb131f7ae5
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
a66c40bf6e0fb79ead6d8a9fc29c5671fa7b1206 16-Aug-2014 RoboErik <epastern@google.com> Update MediaSession APIs for council feedback

-Changes MediaSessionManager.SessionsListener to OnActiveSessionsChangedListener
and makes it an interface.
-Renames MediaController.VolumeInfo to MediaController.AudioInfo
-Renames MediaSession.Track to MediaSession.Item

bug:17059552
Change-Id: I3a0b4371700ad6657972c312a5ab89ddfac6df5b
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
0d194c5e2338b8a920c512e15a433cec5bd63612 12-Aug-2014 RoboErik <epastern@google.com> Post MediaSessionManager callbacks to the caller's thread

We were just sending them from the binder thread. This makes them
post to the thread that registered the listener.

Change-Id: I27c155099da32f3bc8be6e3851272f0463df498b
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
031149cd5f22bd858142633c7a763450f42793f7 26-Jul-2014 RoboErik <epastern@google.com> Add context to MediaController constructor

This also adds a convenience method to MediaSession to allow getting
a controller instead of having to create and cache your own.

bug:16561220
Change-Id: I87f551a7474e71f1cf2f07e0e541c3a4515cd977
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
b214efbb9170a9f6a4991684a63ca59680074cc7 24-Jul-2014 RoboErik <epastern@google.com> Expose a way to set a PendingIntent for restarting playback

This is to allow apps to set a PendingIntent to restart playback. This
is not persisted across reboots but will allow music to start playing
again for the life of the system. Only the most recent priority app with
a PI set will be cached. This also deprecates methods in AudioManager
that do this and unhides the unregister method in MediaSessionManager.

Change-Id: I66fbf5856333468d8cb8a3022809778ba00d426e
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
1ff5b1648a051e9650614f0c0f1b3f449777db81 16-Jul-2014 RoboErik <epastern@google.com> Change adjustVolumeBy to adjustVolume

This makes volume adjustments take a direction instead of a number of
steps and renames the API appropriately.

Change-Id: I6a31cbc42d889a38aa63446686a424cb2b8b2270
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
8b4bffcac996b4083e720310a09d315ca1c4a000 10-Jul-2014 RoboErik <epastern@google.com> Make MediaSession and MediaController constructors public

This makes the MediaSession/Controller constructors public and registers
with the system behind the scenes.

This also adds a bit about needing to call setActive(true) to start receiving
commands in MediaSession's docs.

Change-Id: If882d229b54c36bf0831aca0255052dda667a2bc
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
01a500ed1c6ae3fff66678144ae637aa8cad0ecc 11-Jul-2014 Jeff Brown <jeffbrown@google.com> Delete first draft of media routing APIs.

The new APIs will not be as tightly integrated into MediaSession.

Change-Id: I5cfd37d9d8d0c5d46c55edb5cf0772a8f1ef13ab
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
dba34ba35cd2042d9a8fecfda56e2abe7a680bad 25-Jun-2014 Jeff Brown <jeffbrown@google.com> Make MediaSessionToken an inner class of MediaSession.

Also add some missing AIDLs to the framework makefile to ensure
they are included in the SDK.

Change-Id: If85a3091c7591e0b3bbe6cc4bb74aba2284b4f42
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
19c9518f6a817d53d5234de0020313cab6950b2f 24-Jun-2014 RoboErik <epastern@google.com> b/15729204 Pipe sessions through to VolumePanel

When remote volume is changed via volume buttons we need to notify
the system UI so it can show the slider. This also passes it the
controller to use so adjustments to the slider are sent back to
the correct session.

Change-Id: If5847bcd5db16c56e0e9904b88c94e5b28954c41
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
bf58d9b727f1007c7c620f622ac1d8003b1b211b 24-Jun-2014 Jeff Brown <jeffbrown@google.com> Minor cosmetic tweaks.

Change-Id: I626bad7177659b5670c2864d7bc78033a0ee16e7
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
51fa6bcb22a52b283f6d0756d286101f0d354f54 20-Jun-2014 RoboErik <epastern@google.com> b/15757378 Expose APIs for listening to active sessions

This allows apps that are registered notification listeners to
listen to the set of active sessions.

Change-Id: I1e108951a5049d138208e88b155c0ec9b95fbdb0
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
6b1bea09031ef24214f1806f9b7604302d824c62 17-Jun-2014 RoboErik <epastern@google.com> b/15676582 Fix ordering of sessions returned by MediaSessionManager

This was causing the wrong rcc to be shown. Simple fix
just fixes the ordering so it's not reversed.

Change-Id: I56f2d9d6895d6ba3b0eca8f77a3b0b63e0193ad1
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
73e23e229dd1a2d25687b1c6a63c708665378e41 11-Jun-2014 RoboErik <epastern@google.com> b/15330955 Make RemoteController use the new session APIs

This moves RemoteController over to using Sessions instead of
the RCC/RCD framework. This also adds several hidden APIs to
help with translating between the two apis.

Change-Id: I0f50313db2b6190b16fa86ce670ac9250654ca05
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
2e7a9167aeefeb451f8d8c769175b9a0163744f3 05-Jun-2014 RoboErik <epastern@google.com> Adds listeners for changes to the list of active sessions

The listeners get notified when sessions are added, removed, or
reprioritized.

Change-Id: I7f3bfc84049719c3b9c19016c6bac92e1a5c3179
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
b69ffd4dc2c8fa85e0064151141ebeee90de471e 30-May-2014 RoboErik <epastern@google.com> Minimum work to make volume handling work with sessions

This is the minimum change to make adjusting volume work with
MediaSessions. This only affects adjusting the volume and adjusting
the volume with a suggested stream. Adjusting a specific stream or
setting a specific stream will still use the same code.

This does not fix existing remote volume handling in RCC, which
will require a separate change to MediaController.

Change-Id: I5b957ff4bece1ee11e2364e1f216e1c08343c983
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
79fa4630bbca7c6c251eea99fe8997e4b45becee 28-May-2014 RoboErik <epastern@google.com> API changes to sessions

Changes requested by API Council review. A second CL will refactor
TransportController and TransportPerformer based on feedback.

Change-Id: Ie26a7d01d7021232a66c2edf1eb58120437fdfde
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
42ea7eecd149161ed192d3029f0d77d1d08a4aa5 17-May-2014 RoboErik <epastern@google.com> Rename session classes to have media prefix, hide routes

This renames several of the core session classes to be prefixed
with Media. It also adds @hide to all route references for now.

Change-Id: Idb42897d490cf24626e4e93ca975b2cb93ec054c
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
07c7077c54717dbbf2c401ea32d00fa6df6d77c6 20-Mar-2014 RoboErik <epastern@google.com> Add RouteProviders to the new Media APIs

Compiles and works with OneMedia. This currently is a rough test of
the system for finding, connecting to, and sending messages to routes.
This will just connect to the first route it finds when a request to
open the route picker is made (and disconnect when another request is
made).

Change-Id: I5de5521a079471b9e02664be4654c0591dfd9a6d
/frameworks/base/media/java/android/media/session/MediaSessionManager.java
2f5b057da7d05d5d699a272aa24fd7c97cdda820 21-Feb-2014 RoboErik <epastern@google.com> Move Session apis to android.media.session

This is to make it easier to distinguish the new apis from the old
ones.

Change-Id: Ic5eaf65e8bd054a844f87b9118c4bb18f30ac8a7
/frameworks/base/media/java/android/media/session/MediaSessionManager.java