OnDevicePersonalizationManager
public
class
OnDevicePersonalizationManager
extends Object
java.lang.Object | |
➔ | android.adservices.ondevicepersonalization.OnDevicePersonalizationManager |
OnDevicePersonalizationManager stellt APIs für Apps bereit, mit denen eine IsolatedService
in einem isolierten Prozess geladen und damit interagiert werden kann.
Eine App kann eine IsolatedService
anfordern, um Inhalte für die Anzeige in einem SurfaceView
innerhalb der Ansichtshierarchie der App zu generieren. Außerdem können dauerhafte Ergebnisse im Gerätespeicher geschrieben werden, die von Federated Analytics für die geräteübergreifende statistische Analyse oder von Federated Learning für die Modellschulung verwendet werden können. Sowohl auf die angezeigten Inhalte als auch auf die persistente Ausgabe kann nicht direkt über die aufrufende App zugegriffen werden.
Zusammenfassung
Öffentliche Methoden | |
---|---|
void
|
execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
Führt eine |
void
|
requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Es wird angefordert, dass eine |
Übernommene Methoden | |
---|---|
Öffentliche Methoden
execute
public void execute (ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
Führt eine IsolatedService
in der OnDevicePersonalization-Sandbox aus. Die Plattform bindet in einem isolierten Prozess an die angegebene IsolatedService
und ruft IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer)
mit den vom Aufrufer bereitgestellten Parametern auf. Wenn die Ausführung von IsolatedService
abgeschlossen ist, gibt die Plattform dem Aufrufer Tokens zurück, die sich auf die Ergebnisse aus dem Dienst beziehen.
Diese Tokens können anschließend verwendet werden, um Ergebnisse in einem SurfaceView
in der anrufenden App anzuzeigen.
Parameter | |
---|---|
handler |
ComponentName : Die ComponentName von IsolatedService .
Dieser Wert darf nicht null sein. |
params |
PersistableBundle : Ein PersistableBundle , das von der anrufenden App an die IsolatedService übergeben wird. Der erwartete Inhalt dieses Parameters wird durch dieIsolatedService definiert. Dieser Parameter wird von der Plattform nicht interpretiert.
Dieser Wert darf nicht null sein. |
executor |
Executor : die Executor , über die der Callback aufgerufen werden soll.
Dieser Wert darf nicht null sein.
Callback- und Listener-Ereignisse werden über diese Executor gesendet, was eine einfache Möglichkeit bietet, zu steuern, welcher Thread verwendet wird. Wenn Sie Ereignisse über den Hauptthread Ihrer Anwendung senden möchten, können Sie Context.getMainExecutor() verwenden.
Andernfalls geben Sie eine Executor an, die an einen geeigneten Thread weitergeleitet wird. |
receiver |
OutcomeReceiver : Gibt eine Liste von SurfacePackageToken -Objekten zurück, von denen jedes ein intransparenter Verweis auf eine RenderingConfig ist, die von einem IsolatedService zurückgegeben wird, oder ein Exception bei einem Fehler. Die zurückgegebenen SurfacePackageToken -Objekte können in einem nachfolgenden requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) -Aufruf verwendet werden, um das Ergebnis in einer Ansicht anzuzeigen. Die anrufende App und die IsolatedService müssen sich über die erwartete Größe dieser Liste einigen.
Ein Eintrag in der zurückgegebenen Liste der SurfacePackageToken -Objekte kann null sein, um anzuzeigen, dass der Dienst keine Ausgabe für diese bestimmte Oberfläche hat.
Bei einem Fehler gibt der Empfänger eine der folgenden Ausnahmen zurück: Es wird ein PackageManager.NameNotFoundException zurückgegeben, wenn das Handler-Paket nicht installiert ist oder kein gültiges ODP-Manifest hat.
Gibt ClassNotFoundException zurück, wenn die Handler-Klasse nicht gefunden wird.
Gibt OnDevicePersonalizationException zurück, wenn die Ausführung des Handlers fehlschlägt. |
requestSurfacePackage
public void requestSurfacePackage (SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Fordert an, dass ein SurfaceControlViewHost.SurfacePackage
in eine SurfaceView
in der aufrufenden App eingefügt wird. Das Oberflächenpaket enthält ein View
mit dem Inhalt aus einem vorherigen Aufruf von #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver)
, der in der OnDevicePersonalization-Sandbox ausgeführt wurde.
Parameter | |
---|---|
surfacePackageToken |
SurfacePackageToken : ein Verweis auf eine SurfacePackageToken , die von einem vorherigen Aufruf an #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) zurückgegeben wurde.
Dieser Wert darf nicht null sein. |
surfaceViewHostToken |
IBinder : Das Host-Token des SurfaceView , das von SurfaceView.getHostToken() zurückgegeben wird, nachdem der SurfaceView der Ansichtshierarchie hinzugefügt wurde.
Dieser Wert darf nicht null sein. |
displayId |
int : Die Ganzzahl-ID des logischen Displays, auf dem das SurfaceControlViewHost.SurfacePackage angezeigt werden soll, das von Context.getDisplay().getDisplayId() zurückgegeben wird. |
width |
int : die Breite des SurfaceControlViewHost.SurfacePackage
in Pixeln. |
height |
int : die Höhe des SurfaceControlViewHost.SurfacePackage
in Pixeln. |
executor |
Executor : die Executor , für die der Rückruf aufgerufen werden soll. Dieser Wert darf nicht null sein.
Callback- und Listener-Ereignisse werden über diesen Executor gesendet. So lässt sich auf einfache Weise steuern, welcher Thread verwendet wird. Wenn Sie Ereignisse über den Hauptthread Ihrer Anwendung auslösen möchten, können Sie Context.getMainExecutor() verwenden.
Andernfalls geben Sie eine Executor an, die an einen geeigneten Thread weitergeleitet wird. |
receiver |
OutcomeReceiver : Hier wird bei Erfolg SurfaceControlViewHost.SurfacePackage oder bei Fehler Exception zurückgegeben. Der Ausnahmetyp ist OnDevicePersonalizationException , wenn die Ausführung des Handlers fehlschlägt.
Dieser Wert darf nicht null sein. |