OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

java.lang.Object (link em inglês)
   ↳ android.adservices.ondevicepersonalization.OnDevicePersonalizationManager


O OnDevicePersonalizationManager oferece APIs para que os apps carreguem uma IsolatedService em um processo isolado e interajam com ele. Um app pode solicitar uma IsolatedService para gerar conteúdo para exibição em uma SurfaceView dentro da hierarquia de visualização do app, além de gravar resultados persistentes no armazenamento no dispositivo, que podem ser consumidos pelo Federated Analytics 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 podem ser acessados 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 a 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 depois 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: um PersistableBundle transmitido do app de chamada para o IsolatedService. O conteúdo esperado desse parâmetro é definido pelo IsolatedService. A plataforma não interpreta esse parâmetro. Esse valor não pode ser null.

executor Executor: o Executor em que o callback será 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 um Executor que seja enviado 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 exibir o resultado em uma visualização. O app de chamada e a 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. Retorna ClassNotFoundException se a classe de gerenciador não for encontrada. Retornará 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 do 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 é adicionado à hierarquia de visualização. Esse valor não pode ser null.

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

width int: a largura da 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 um Executor que seja enviado 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 será OnDevicePersonalizationException se a execução do gerenciador falhar. Esse valor não pode ser null.