OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

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


O OnDevicePersonalizationManager fornece APIs para que os apps carreguem um IsolatedService em um processo isolado e interajam com ele. Um app pode solicitar uma IsolatedService para gerar conteúdo para exibição em um SurfaceView na hierarquia de visualização do app e também gravar resultados persistentes no armazenamento no dispositivo, que podem ser consumidos pelo Google Analytics federado para análise estatística entre dispositivos ou pelo Aprendizado federado para treinamento de modelos. O conteúdo exibido e a saída persistente não são acessíveis diretamente pelo app de chamada.

Resumo

Métodos públicos

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

Executa um IsolatedService no sandbox OnDevicePersonalization.

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

Solicita que um SurfaceControlViewHost.SurfacePackage seja inserido em um SurfaceView dentro do app de chamada.

Métodos herdados

Métodos públicos

executar

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

Executa um IsolatedService no sandbox OnDevicePersonalization. A plataforma se vincula ao IsolatedService especificado em um processo isolado e chama IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer) com os parâmetros fornecidos pelo autor da chamada. Quando IsolatedService termina a execução, a plataforma retorna tokens que se referem aos resultados do serviço para o autor da chamada. Esses tokens podem ser usados posteriormente para mostrar resultados em um SurfaceView no app de chamada.

Parâmetros
handler ComponentName: o ComponentName do IsolatedService. Esse valor não pode ser null.

params PersistableBundle: uma PersistableBundle transmitida do app de chamada para o IsolatedService. O conteúdo esperado desse parâmetro é definido por IsolatedService. A plataforma não interpreta esse parâmetro. Esse valor não pode ser null.

executor Executor: o Executor em que o callback é invocado. Esse valor não pode ser null. Eventos de callback e listener são enviados com esse Executor, fornecendo uma maneira fácil de controlar qual linha de execução vai ser usada. Para enviar eventos com a linha de execução principal do aplicativo, use Context.getMainExecutor(). Caso contrário, forneça uma Executor que seja enviada para uma linha de execução adequada.

receiver OutcomeReceiver: retorna uma lista de objetos SurfacePackageToken, cada um sendo uma referência opaca a um RenderingConfig retornado por um IsolatedService ou um Exception em caso de falha. Os objetos SurfacePackageToken retornados podem ser usados em uma chamada requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) subsequente para mostrar o resultado em uma visualização. O app de chamada e o IsolatedService precisam concordar com o tamanho esperado dessa lista. Uma entrada na lista retornada de objetos SurfacePackageToken pode ser nula para indicar que o serviço não tem saída para essa superfície específica. Em caso de erro, o receptor retorna uma das seguintes exceções: Retorna um PackageManager.NameNotFoundException se o pacote do gerenciador não estiver instalado ou não tiver um manifesto ODP válido. Retornará ClassNotFoundException se a classe do gerenciador não for encontrada. Retorna um OnDevicePersonalizationException se a execução do gerenciador falhar.

requestSurfacePackage

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

Solicita que um SurfaceControlViewHost.SurfacePackage seja inserido em um SurfaceView dentro do app de chamada. O pacote de superfície vai conter um View com o conteúdo de um resultado de uma chamada anterior para #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) em execução no sandbox OnDevicePersonalization.

Parâmetros
surfacePackageToken SurfacePackageToken: uma referência a um SurfacePackageToken retornado por uma chamada anterior para #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver). Esse valor não pode ser null.

surfaceViewHostToken IBinder: o hostToken do SurfaceView, que é retornado por SurfaceView.getHostToken() depois que o SurfaceView foi adicionado à hierarquia de visualização. Esse valor não pode ser null.

displayId int: o ID inteiro da tela lógica em que o SurfaceControlViewHost.SurfacePackage será mostrado, retornado por Context.getDisplay().getDisplayId().

width int: a largura do SurfaceControlViewHost.SurfacePackage em pixels.

height int: a altura da SurfaceControlViewHost.SurfacePackage em pixels.

executor Executor: o Executor em que o callback é invocado Este valor não pode ser null. Eventos de callback e listener são enviados com esse Executor, fornecendo uma maneira fácil de controlar qual linha de execução vai ser usada. Para enviar eventos com a linha de execução principal do aplicativo, use Context.getMainExecutor(). Caso contrário, forneça uma Executor que seja enviada para uma linha de execução adequada.

receiver OutcomeReceiver: retorna um SurfaceControlViewHost.SurfacePackage em caso de sucesso ou Exception em caso de falha. O tipo de exceção é OnDevicePersonalizationException se a execução do gerenciador falhar. Esse valor não pode ser null.