OnDevicePersonalizationManager
public
class
OnDevicePersonalizationManager
extends Object
java.lang.Object | |
↳ | android.adservices.ondevicepersonalization.OnDevicePersonalizationManager |
OnDevicePersonalizationManager fournit des API permettant aux applications de charger un IsolatedService
dans un processus isolé et d'interagir avec lui.
Une application peut demander à un IsolatedService
de générer du contenu à afficher dans un SurfaceView
dans la hiérarchie des vues de l'application, et également écrire des résultats persistants dans l'espace de stockage de l'appareil, qui peuvent être utilisés par Federated Analytics pour l'analyse statistique inter-appareil ou par l'apprentissage fédéré pour l'entraînement de modèle. Le contenu affiché et la sortie persistante ne sont pas directement accessibles par l'application appelante.
Résumé
Méthodes publiques | |
---|---|
void
|
execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
Exécute un |
void
|
requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Demande l'insertion d'un |
Méthodes héritées | |
---|---|
Méthodes publiques
execute
public void execute (ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
Exécute un IsolatedService
dans le bac à sable OnDevicePersonalization. La plate-forme se lie à l'IsolatedService
spécifié dans un processus isolé et appelle IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer)
avec les paramètres fournis par l'appelant. Une fois l'exécution de IsolatedService
terminée, la plate-forme renvoie des jetons qui font référence aux résultats du service à l'appelant.
Ces jetons peuvent ensuite être utilisés pour afficher les résultats dans un SurfaceView
dans l'application appelante.
Paramètres | |
---|---|
handler |
ComponentName : ComponentName du IsolatedService .
Cette valeur ne peut pas être null . |
params |
PersistableBundle : PersistableBundle transmis de l'application appelante à IsolatedService . Le contenu attendu de ce paramètre est défini par IsolatedService . La plate-forme n'interprète pas ce paramètre.
Cette valeur ne peut pas être null . |
executor |
Executor : Executor sur lequel appeler le rappel.
Cette valeur ne peut pas être null .
Les événements de rappel et d'écouteur sont distribués via ce Executor , ce qui permet de contrôler facilement le thread utilisé. Pour distribuer des événements via le thread principal de votre application, vous pouvez utiliser Context.getMainExecutor() .
Sinon, fournissez un Executor qui sera envoyé à un thread approprié. |
receiver |
OutcomeReceiver : cette méthode renvoie une liste d'objets SurfacePackageToken , chacun étant une référence opaque à un RenderingConfig renvoyé par un IsolatedService ou un Exception en cas d'échec. Les objets SurfacePackageToken renvoyés peuvent être utilisés dans un appel requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) ultérieur pour afficher le résultat dans une vue. L'application appelante et le IsolatedService doivent s'accorder sur la taille attendue de cette liste.
Une entrée dans la liste d'objets SurfacePackageToken renvoyée peut être nulle pour indiquer que le service n'a pas de sortie pour cette surface spécifique.
En cas d'erreur, le récepteur renvoie l'une des exceptions suivantes : renvoie PackageManager.NameNotFoundException si le package du gestionnaire n'est pas installé ou ne possède pas de fichier manifeste ODP valide.
Renvoie ClassNotFoundException si la classe de gestionnaire est introuvable.
Renvoie un OnDevicePersonalizationException si l'exécution du gestionnaire échoue. |
requestSurfacePackage
public void requestSurfacePackage (SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Demande qu'un SurfaceControlViewHost.SurfacePackage
soit inséré dans un SurfaceView
dans l'application appelante. Le package de surface contiendra un View
avec le contenu d'un résultat d'un appel précédent à #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver)
exécuté dans le bac à sable OnDevicePersonalization.
Paramètres | |
---|---|
surfacePackageToken |
SurfacePackageToken : référence à un SurfacePackageToken renvoyé par un appel précédent à #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) .
Cette valeur ne peut pas être null . |
surfaceViewHostToken |
IBinder : le hostToken de SurfaceView , qui est renvoyé par SurfaceView.getHostToken() après l'ajout de SurfaceView à la hiérarchie des vues.
Cette valeur ne peut pas être null . |
displayId |
int : ID entier de l'écran logique sur lequel afficher le SurfaceControlViewHost.SurfacePackage , renvoyé par Context.getDisplay().getDisplayId() . |
width |
int : largeur de l'SurfaceControlViewHost.SurfacePackage en pixels. |
height |
int : hauteur de l'élément SurfaceControlViewHost.SurfacePackage en pixels. |
executor |
Executor : Executor sur lequel appeler le rappel. Cette valeur ne peut pas être null .
Les événements de rappel et d'écouteur sont distribués via ce Executor , ce qui permet de contrôler facilement le thread utilisé. Pour distribuer des événements via le thread principal de votre application, vous pouvez utiliser Context.getMainExecutor() .
Sinon, fournissez un Executor qui distribue les tâches à un thread approprié. |
receiver |
OutcomeReceiver : renvoie un SurfaceControlViewHost.SurfacePackage en cas de réussite ou un Exception en cas d'échec. Le type d'exception est OnDevicePersonalizationException si l'exécution du gestionnaire échoue.
Cette valeur ne peut pas être null . |