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 IsolatedService nella sandbox di OnDevicePersonalization.

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

Richiedi l'inserimento di un SurfaceControlViewHost.SurfacePackage in un SurfaceView all'interno dell'app per le chiamate.

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.SurfacePackageException> 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.