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 |
void
|
requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Solicita que um |
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.SurfacePackage, Exception> 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 . |