Merge "Add Context constant for Playback Metrics Service"

This commit is contained in:
Shubang Lu
2021-01-26 20:02:36 +00:00
committed by Android (Google) Code Review
5 changed files with 30 additions and 2 deletions

View File

@@ -10373,6 +10373,7 @@ package android.content {
field public static final String LAUNCHER_APPS_SERVICE = "launcherapps";
field public static final String LAYOUT_INFLATER_SERVICE = "layout_inflater";
field public static final String LOCATION_SERVICE = "location";
field public static final String MEDIA_METRICS_SERVICE = "media_metrics";
field public static final String MEDIA_PROJECTION_SERVICE = "media_projection";
field public static final String MEDIA_ROUTER_SERVICE = "media_router";
field public static final String MEDIA_SESSION_SERVICE = "media_session";

View File

@@ -107,6 +107,8 @@ import android.media.AudioManager;
import android.media.MediaFrameworkInitializer;
import android.media.MediaFrameworkPlatformInitializer;
import android.media.MediaRouter;
import android.media.metrics.IMediaMetricsManager;
import android.media.metrics.MediaMetricsManager;
import android.media.midi.IMidiManager;
import android.media.midi.MidiManager;
import android.media.musicrecognition.IMusicRecognitionManager;
@@ -1412,6 +1414,18 @@ public final class SystemServiceRegistry {
return new DeviceStateManager();
}});
registerService(Context.MEDIA_METRICS_SERVICE, MediaMetricsManager.class,
new CachedServiceFetcher<MediaMetricsManager>() {
@Override
public MediaMetricsManager createService(ContextImpl ctx)
throws ServiceNotFoundException {
IBinder iBinder =
ServiceManager.getServiceOrThrow(Context.MEDIA_METRICS_SERVICE);
IMediaMetricsManager service =
IMediaMetricsManager.Stub.asInterface(iBinder);
return new MediaMetricsManager(service, ctx.getUserId());
}});
sInitializing = true;
try {
// Note: the following functions need to be @SystemApis, once they become mainline

View File

@@ -3576,6 +3576,7 @@ public abstract class Context {
//@hide: PEOPLE_SERVICE,
//@hide: DEVICE_STATE_SERVICE,
UWB_SERVICE,
MEDIA_METRICS_SERVICE,
})
@Retention(RetentionPolicy.SOURCE)
public @interface ServiceName {}
@@ -5387,6 +5388,16 @@ public abstract class Context {
*/
public static final String DEVICE_STATE_SERVICE = "device_state";
/**
* Use with {@link #getSystemService(String)} to retrieve a
* {@link android.media.metrics.MediaMetricsManager} for interacting with media metrics
* on the device.
*
* @see #getSystemService(String)
* @see android.media.metrics.MediaMetricsManager
*/
public static final String MEDIA_METRICS_SERVICE = "media_metrics";
/**
* Determine whether the given permission is allowed for a particular
* process and user ID running in the system.

View File

@@ -17,11 +17,14 @@
package android.media.metrics;
import android.annotation.NonNull;
import android.annotation.SystemService;
import android.content.Context;
import android.os.RemoteException;
/**
* This class gives information about, and interacts with media metrics.
*/
@SystemService(Context.MEDIA_METRICS_SERVICE)
public class MediaMetricsManager {
// TODO: unhide APIs.
private static final String TAG = "MediaMetricsManager";

View File

@@ -50,8 +50,7 @@ public final class MediaMetricsManagerService extends SystemService {
@Override
public void onStart() {
// TODO: make the service name a constant in Context.java
publishBinderService("playback_metrics", new BinderService());
publishBinderService(Context.MEDIA_METRICS_SERVICE, new BinderService());
}
private final class BinderService extends IMediaMetricsManager.Stub {