OnDevicePersonalizationManager
public
class
OnDevicePersonalizationManager
extends Object
java.lang.Object | |
↳ | android.adservices.ondevicepersonalization.OnDevicePersonalizationManager |
OnDevicePersonalizationManager fornisce API per consentire alle app di caricare un
IsolatedService
in un processo isolato e di interagirvi.
Un'app può richiedere un IsolatedService
per generare contenuti da visualizzare
in un SurfaceView
all'interno della gerarchia delle visualizzazioni dell'app, nonché scrivere
risultati permanenti nella memoria interna del dispositivo, che possono essere utilizzati da Federated Analytics per
l'analisi statistica cross-device o da Federated Learning per l'addestramento del modello. I contenuti visualizzati e l'output persistente non sono direttamente accessibili dall'app chiamante.
Riepilogo
Metodi pubblici | |
---|---|
void
|
execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
Esegue un |
void
|
requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Richiedi l'inserimento di un |
Metodi ereditati | |
---|---|
Metodi pubblici
Esegui
public void execute (ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
Esegue un IsolatedService
nella sandbox di OnDevicePersonalization. La piattaforma si lega a IsolatedService
specificato in un processo isolato e chiama IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer)
con i parametri forniti dall'autore della chiamata. Al termine dell'esecuzione di IsolatedService
, la piattaforma restituisce al chiamante i token che fanno riferimento ai risultati del servizio.
Questi token possono essere successivamente utilizzati per visualizzare i risultati in un
SurfaceView
all'interno dell'app chiamante.
Parametri | |
---|---|
handler |
ComponentName : il ComponentName del IsolatedService .
Questo valore non può essere null . |
params |
PersistableBundle : un PersistableBundle che viene passato dall'app di chiamata al
IsolatedService . I contenuti previsti di questo parametro sono definiti dall'IsolatedService . La piattaforma non interpreta questo parametro.
Questo valore non può essere null . |
executor |
Executor : l'Executor su cui chiamare la chiamata.
Questo valore non può essere null .
Gli eventi di callback e listener vengono inviati tramite questo Executor , che offre un modo semplice per controllare il thread utilizzato. Per inviare eventi tramite il thread principale della tua applicazione, puoi utilizzare Context.getMainExecutor() .
In caso contrario, specifica un valore Executor che effettui l'invio a un thread appropriato. |
receiver |
OutcomeReceiver : restituisce un elenco di oggetti SurfacePackageToken , ciascuno dei quali è un riferimento opaco a un RenderingConfig restituito da un IsolatedService o un Exception in caso di errore. Gli oggetti
SurfacePackageToken restituiti possono essere utilizzati in una chiamata
requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) successiva per visualizzare il risultato in una visualizzazione. L'app di chiamata e
il IsolatedService devono essere d'accordo sulle dimensioni previste di questo elenco.
Una voce nell'elenco restituito di oggetti SurfacePackageToken può essere nullo per indicare che il servizio non ha output per quella specifica piattaforma.
In caso di errore, il ricevente restituisce una delle seguenti eccezioni:
Restituisce un PackageManager.NameNotFoundException se il pacchetto del gestore
non è installato o non ha un manifest ODP valido.
Restituisce ClassNotFoundException se la classe di gestore non viene trovata.
Restituisce un OnDevicePersonalizationException se l'esecuzione del gestore non va a buon fine. |
requestSurfacePackage
public void requestSurfacePackage (SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Richiede l'inserimento di un SurfaceControlViewHost.SurfacePackage
in un
SurfaceView
all'interno dell'app chiamante. Il pacchetto della piattaforma conterrà un
View
con i contenuti di un risultato di una chiamata precedente a
#execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver)
in esecuzione nella sandbox OnDevicePersonalization.
Parametri | |
---|---|
surfacePackageToken |
SurfacePackageToken : un riferimento a un SurfacePackageToken restituito da una chiamata precedente a #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) .
Questo valore non può essere null . |
surfaceViewHostToken |
IBinder : l'hostToken del SurfaceView , che viene fornito da SurfaceView.getHostToken() dopo che SurfaceView è stato aggiunto alla gerarchia delle visualizzazioni.
Questo valore non può essere null . |
displayId |
int : l'ID intero della visualizzazione logica su cui visualizzare il
SurfaceControlViewHost.SurfacePackage , restituito da
Context.getDisplay().getDisplayId() . |
width |
int : la larghezza del SurfaceControlViewHost.SurfacePackage
in pixel. |
height |
int : l'altezza del SurfaceControlViewHost.SurfacePackage
in pixel. |
executor |
Executor : il Executor su cui richiamare il callback
Questo valore non può essere null .
Gli eventi di callback e listener vengono inviati tramite questo
Executor , fornendo un modo semplice per controllare quale thread viene
utilizzato. Per inviare eventi tramite il thread principale della tua applicazione, puoi utilizzare Context.getMainExecutor() .
In caso contrario, fornisci un Executor che invii a un thread appropriato. |
receiver |
OutcomeReceiver : restituisce un SurfaceControlViewHost.SurfacePackage in caso di esito positivo o Exception in caso di errore. Il tipo di eccezione è
OnDevicePersonalizationException se l'esecuzione del gestore non va a buon fine.
Questo valore non può essere null . |