Remove using hidden API: MediaSessionManager(Context)

Replace with SystemServiceRegistry.registerContextAwareService,
which is a @SystemApi. See ag/9734296 for reference.

Bug: 160380016
Test: atest
    CtsMediaTestCases:android.media.cts.MediaSessionManagerTest
Change-Id: I9b6da97e0e0f5181ce8681a399ca090e67f6fd4e
This commit is contained in:
Jin Seok Park
2020-07-02 14:43:20 +09:00
parent 8f79003bec
commit 431f3af83b
2 changed files with 20 additions and 8 deletions

View File

@@ -101,11 +101,11 @@ import android.location.ICountryDetector;
import android.location.ILocationManager;
import android.location.LocationManager;
import android.media.AudioManager;
import android.media.MediaFrameworkInitializer;
import android.media.MediaRouter;
import android.media.midi.IMidiManager;
import android.media.midi.MidiManager;
import android.media.projection.MediaProjectionManager;
import android.media.session.MediaSessionManager;
import android.media.soundtrigger.SoundTriggerManager;
import android.media.tv.ITvInputManager;
import android.media.tv.TvInputManager;
@@ -855,13 +855,6 @@ public final class SystemServiceRegistry {
return new ConsumerIrManager(ctx);
}});
registerService(Context.MEDIA_SESSION_SERVICE, MediaSessionManager.class,
new CachedServiceFetcher<MediaSessionManager>() {
@Override
public MediaSessionManager createService(ContextImpl ctx) {
return new MediaSessionManager(ctx);
}});
registerService(Context.TRUST_SERVICE, TrustManager.class,
new StaticServiceFetcher<TrustManager>() {
@Override
@@ -1335,6 +1328,7 @@ public final class SystemServiceRegistry {
WifiFrameworkInitializer.registerServiceWrappers();
StatsFrameworkInitializer.registerServiceWrappers();
RollbackManagerFrameworkInitializer.initialize();
MediaFrameworkInitializer.registerServiceWrappers();
} finally {
// If any of the above code throws, we're in a pretty bad shape and the process
// will likely crash, but we'll reset it just in case there's an exception handler...

View File

@@ -17,6 +17,9 @@
package android.media;
import android.annotation.NonNull;
import android.app.SystemServiceRegistry;
import android.content.Context;
import android.media.session.MediaSessionManager;
import com.android.internal.util.Preconditions;
@@ -53,4 +56,19 @@ public class MediaFrameworkInitializer {
public static MediaServiceManager getMediaServiceManager() {
return sMediaServiceManager;
}
/**
* Called by {@link SystemServiceRegistry}'s static initializer and registers all media
* services to {@link Context}, so that {@link Context#getSystemService} can return them.
*
* @throws IllegalStateException if this is called from anywhere besides
* {@link SystemServiceRegistry}
*/
public static void registerServiceWrappers() {
SystemServiceRegistry.registerContextAwareService(
Context.MEDIA_SESSION_SERVICE,
MediaSessionManager.class,
context -> new MediaSessionManager(context)
);
}
}