GestorePersonalizzazione dispositivo

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 a un IsolatedService di generare contenuti da visualizzare all'interno di un elemento SurfaceView all'interno della gerarchia delle visualizzazioni dell'app, nonché scrivere risultati permanenti nello spazio di archiviazione on-device, che può essere utilizzato da Federated Analytics per l'analisi statistica cross-device o da Federated Learning per l'addestramento dei modelli. I contenuti visualizzati e l'output permanente non sono entrambi direttamente accessibili all'app chiamante.

Riepilogo

Metodi pubblici

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

Esegue un IsolatedService nella sandbox 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

eseguire

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

Esegue un IsolatedService nella sandbox OnDevicePersonalization. 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 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 per la chiamata.

Parametri
handler ComponentName: la ComponentName del IsolatedService. Questo valore non può essere null.

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

executor Executor: l'elemento Executor sul quale richiamare il callback. Questo valore non può essere null. Gli eventi di callback e di listener vengono inviati tramite questo Executor, offrendo 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, specifica un Executor che verrà inviato al thread appropriato.

receiver OutcomeReceiver: restituisce un elenco di oggetti SurfacePackageToken, ognuno dei quali è un riferimento opaco a RenderingConfig restituito da IsolatedService o 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 per le chiamate e IsolatedService devono concordare le dimensioni previste di questo elenco. Una voce nell'elenco restituito di SurfacePackageToken oggetti può essere nulla per indicare che il servizio non ha output per quella piattaforma specifica. In caso di errore, il destinatario restituisce una delle seguenti eccezioni: restituisce PackageManager.NameNotFoundException se il pacchetto del gestore non è installato o non ha un manifest ODP valido. Restituisce ClassNotFoundException se la classe del gestore non è stata 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)

Consente di inserire un SurfaceControlViewHost.SurfacePackage in un elemento SurfaceView all'interno dell'app per le chiamate. Il pacchetto Surface conterrà un elemento View con i contenuti del risultato di una precedente chiamata a #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) in esecuzione nella 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 viene restituito 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 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 valore Executor sul quale richiamare il callback Questo valore non può essere null. Gli eventi di callback e di listener vengono inviati tramite questo Executor, offrendo 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, specifica un Executor che verrà inviato al thread appropriato.

receiver OutcomeReceiver: restituisce 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.