OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

java.lang.Object.
   ↳ android.adservices.ondevicepersonalization.OnDevicePersonalizationManager


OnDevicePersonalizationManager proporciona APIs para que las apps carguen un IsolatedService en un proceso aislado e interactúen con él. Una app puede solicitar un IsolatedService que genere contenido para mostrar dentro de una SurfaceView dentro de la jerarquía de vistas de la app y también puede escribir resultados persistentes en el almacenamiento del dispositivo que Federated Analytics puede consumir para el análisis estadístico multidispositivo o el aprendizaje federado para el entrenamiento de modelos. La app que realiza la llamada no puede acceder directamente al contenido que se muestra ni al resultado persistente.

Resumen

Métodos públicos

void execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)

Ejecuta un IsolatedService en la zona de pruebas OnDevicePersonalization.

void requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackageException> receiver)

Solicita que se inserte un SurfaceControlViewHost.SurfacePackage en un SurfaceView dentro de la app que realiza la llamada.

Métodos heredados

Métodos públicos

ejecutar

public void execute (ComponentName handler, 
                PersistableBundle params, 
                Executor executor, 
                OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)

Ejecuta un IsolatedService en la zona de pruebas OnDevicePersonalization. La plataforma se vincula al IsolatedService especificado en un proceso aislado y llama a IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer) con los parámetros que proporciona el emisor. Cuando IsolatedService finaliza la ejecución, la plataforma muestra tokens que hacen referencia a los resultados del servicio al emisor. Luego, estos tokens se pueden usar para mostrar los resultados en una SurfaceView dentro de la app que realiza la llamada.

Parámetros
handler ComponentName: Es el ComponentName de IsolatedService. Este valor no puede ser null.

params PersistableBundle: Es un PersistableBundle que se pasa de la app que realiza la llamada al IsolatedService. IsolatedService define el contenido esperado de este parámetro. La plataforma no interpreta este parámetro. Este valor no puede ser null.

executor Executor: El Executor en el que se invoca la devolución de llamada Este valor no puede ser null. Los eventos de devolución de llamada y de objetos de escucha se envían a través de este Executor, lo que proporciona una manera fácil de controlar el subproceso que se usa. Para enviar eventos a través del subproceso principal de tu aplicación, puedes usar Context.getMainExecutor(). De lo contrario, proporciona un Executor que se envíe al subproceso correspondiente.

receiver OutcomeReceiver: Muestra una lista de objetos SurfacePackageToken, cada uno de los cuales es una referencia opaca a un RenderingConfig que muestra un IsolatedService o una Exception si falla. Los objetos SurfacePackageToken que se muestran se pueden usar en una llamada posterior a requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) para mostrar el resultado en una vista. La app que realiza la llamada y la IsolatedService deben estar de acuerdo con el tamaño esperado de esta lista. Es posible que una entrada en la lista de objetos SurfacePackageToken que se muestra sea nula para indicar que el servicio no tiene resultados para esa superficie específica. En caso de error, el receptor muestra una de las siguientes excepciones: Muestra un PackageManager.NameNotFoundException si el paquete de controlador no está instalado o no tiene un manifiesto de ODP válido. Muestra ClassNotFoundException si no se encuentra la clase de controlador. Muestra una OnDevicePersonalizationException si falla la ejecución del controlador.

requestSurfacePackage

public void requestSurfacePackage (SurfacePackageToken surfacePackageToken, 
                IBinder surfaceViewHostToken, 
                int displayId, 
                int width, 
                int height, 
                Executor executor, 
                OutcomeReceiver<SurfaceControlViewHost.SurfacePackageException> receiver)

Solicita que se inserte un SurfaceControlViewHost.SurfacePackage en un SurfaceView dentro de la app que realiza la llamada. El paquete de superficie contendrá un View con el contenido de un resultado de una llamada anterior a #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) que se ejecuta en la zona de pruebas de OnDevicePersonalization.

Parámetros
surfacePackageToken SurfacePackageToken: Es una referencia a un SurfacePackageToken que muestra una llamada anterior a #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver). Este valor no puede ser null.

surfaceViewHostToken IBinder: Es el hostToken de SurfaceView, que muestra SurfaceView.getHostToken() después de agregar SurfaceView a la jerarquía de vistas. Este valor no puede ser null.

displayId int: El ID de número entero de la pantalla lógica en la que se muestra el SurfaceControlViewHost.SurfacePackage, que muestra Context.getDisplay().getDisplayId().

width int: Es el ancho de SurfaceControlViewHost.SurfacePackage en píxeles.

height int: Es la altura del objeto SurfaceControlViewHost.SurfacePackage en píxeles.

executor Executor: el Executor en el que se invoca la devolución de llamada. Este valor no puede ser null. Los eventos de devolución de llamada y de objetos de escucha se envían a través de este Executor, lo que proporciona una manera fácil de controlar el subproceso que se usa. Para enviar eventos a través del subproceso principal de tu aplicación, puedes usar Context.getMainExecutor(). De lo contrario, proporciona un Executor que se envíe al subproceso correspondiente.

receiver OutcomeReceiver: Muestra un SurfaceControlViewHost.SurfacePackage si se ejecuta correctamente o un Exception si se produce un error. El tipo de excepción es OnDevicePersonalizationException si falla la ejecución del controlador. Este valor no puede ser null.