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

Object clone()

Cria e retorna uma cópia desse objeto.

boolean equals(Object obj)

Indica se algum outro objeto é "igual a" esse.

void finalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

final Class<?> getClass()

Retorna a classe de execução desse Object.

int hashCode()

Retorna um valor de código hash para o objeto.

final void notify()

Ativa uma única linha de execução que está em espera no monitor desse objeto.

final void notifyAll()

Ativa todos os threads que estão aguardando no monitor desse objeto.

String toString()

Retorna uma representação em string do objeto.

final void wait(long timeoutMillis, int nanos)

Faz com que a linha de execução atual espere até ser ativada, normalmente sendo notificada ou interrompida, ou até que um determinado período de tempo real tenha passado.

final void wait(long timeoutMillis)

Faz com que a linha de execução atual espere até ser ativada, normalmente sendo notificada ou interrompida, ou até que um determinado período de tempo real tenha passado.

final void wait()

Faz com que a linha de execução atual espere até ser ativada, normalmente sendo notificada ou interrompida.

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.