OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

java.lang.Object
🎞 android.adservices.ondevicepersonalization.OnDevicePersonalizationManager


OnDevicePersonalizationManager fornisce API per consentire alle app di caricare IsolatedService in un processo isolato e interagirvi. Un'app può richiedere un IsolatedService per generare contenuti da visualizzare in un SurfaceView all'interno della gerarchia di visualizzazione dell'app e anche scrivere risultati permanenti nello spazio di archiviazione sul dispositivo che può essere utilizzato da Federated Analytics per l'analisi statistica cross-device o l'apprendimento federato per l'addestramento del modello. Il valore visualizzato e l'output permanente non sono entrambi accessibili direttamente 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)

Richiede l'inserimento di un SurfaceControlViewHost.SurfacePackage in un SurfaceView nell'app per le chiamate.

Metodi ereditati

Metodi pubblici

eseguire

public void execute (ComponentName handler, 
                PersistableBundle params, 
                Executor executor, 
                OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)

Esegue un IsolatedService nella sandbox di OnDevicePersonalization. La la piattaforma si associa all'oggetto IsolatedService specificato in un processo isolato e chiama IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer) con i parametri forniti dal chiamante. Al termine dell'esecuzione di IsolatedService, la piattaforma restituisce token che fanno riferimento ai risultati del servizio al chiamante. Questi token possono essere utilizzati successivamente per visualizzare i risultati SurfaceView nell'app per le chiamate.

Parametri
handler ComponentName: il ComponentName di IsolatedService. Questo valore non può essere null.

params PersistableBundle: un PersistableBundle che viene passato dall'app per le chiamate all'app IsolatedService. I contenuti previsti di questo parametro sono definiti dal IsolatedService. La piattaforma non interpreta questo parametro. Questo valore non può essere null.

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, che consente di controllare facilmente quale thread in uso. Per inviare eventi tramite il thread principale del tuo 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 SurfacePackageToken oggetti, ognuno dei quali è un riferimento opaco a RenderingConfig restituito da un IsolatedService o Exception in caso di errore. L'oggetto restituito SurfacePackageToken oggetti possono essere utilizzati in una Chiamata requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) per visualizzare il risultato in una visualizzazione. L'app per le chiamate e IsolatedService deve concordare le dimensioni previste di questo elenco. Una voce nell'elenco di oggetti SurfacePackageToken restituito potrebbe essere nullo per indicano che il servizio non ha output per quella specifica piattaforma. In caso di errore, il destinatario restituisce una delle seguenti eccezioni: Restituisce un PackageManager.NameNotFoundException se il gestore pacchetto non installato o non presenta un file manifest ODP valido. Restituisce ClassNotFoundException se la classe gestore non viene trovata. Restituisce un valore OnDevicePersonalizationException in caso di errore dell'esecuzione del gestore.

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 nell'app per le chiamate. Il pacchetto Surface contiene View con i contenuti di una precedente chiamata a #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) in esecuzione la sandbox OnDevicePersonalization.

Parametri
surfacePackageToken SurfacePackageToken: un riferimento a un SurfacePackageToken restituito da una precedente chiamata a #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver). Questo valore non può essere null.

surfaceViewHostToken IBinder: l'hostToken di SurfaceView, che è restituito da SurfaceView.getHostToken() dopo 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 di SurfaceControlViewHost.SurfacePackage in pixel.

height int: l'altezza di 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, che consente di controllare facilmente quale thread in uso. Per inviare eventi tramite il thread principale del tuo puoi utilizzare Context.getMainExecutor(). In caso contrario, specifica un valore Executor che effettui l'invio a un thread appropriato.

receiver OutcomeReceiver: restituisce un SurfaceControlViewHost.SurfacePackage in caso di esito positivo oppure Exception in caso di errore. Il tipo di eccezione è OnDevicePersonalizationException se l'esecuzione del gestore non riesce. Questo valore non può essere null.