OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

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


OnDevicePersonalizationManager udostępnia interfejsy API, które umożliwiają aplikacjom wczytywanie elementu IsolatedService w osobnym procesie i interakcję z nim. Aplikacja może poprosić IsolatedService o wygenerowanie treści do wyświetlenia w ramach SurfaceView w hierarchii widoków aplikacji, a także zapisać trwałe wyniki w pamięci urządzenia, aby mogły być używane przez federacyjne usługi analityczne do analizy statystycznej na różnych urządzeniach lub przez federacyjne uczenie się do trenowania modeli. Aplikacja wywołująca nie ma bezpośredniego dostępu do wyświetlanej treści ani trwałych danych wyjściowych.

Podsumowanie

Metody publiczne

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

Wykonuje IsolatedService w ramach piaskownicy personalizacji na urządzeniu.

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

Żąda wstawienia SurfaceControlViewHost.SurfacePackage do SurfaceView w aplikacji wywołującej.

Metody dziedziczone

Metody publiczne

wykonać

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

Wykonuje polecenie IsolatedService w piaskownicy OnDevicePersonalization. Platforma łączy się z określonym IsolatedService w odseparowanym procesie i wywołuje IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer) z parametrami przekazanymi przez wywołującego. Gdy IsolatedService zakończy wykonywanie, platforma zwraca do elementu wywołującego tokeny odwołujące się do wyników usługi. Te tokeny można następnie wykorzystać do wyświetlania wyników w aplikacji do połączeń SurfaceView.

Parametry
handler ComponentName: ComponentName IsolatedService. Ta wartość nie może być null.

params PersistableBundle: PersistableBundle przekazywany z aplikacji do rozmów do IsolatedService. Oczekiwana zawartość tego parametru jest zdefiniowana przez IsolatedService. Platforma nie interpretuje tego parametru. Ta wartość nie może być null.

executor Executor: Executor, na którym ma być wywoływane oddzwanianie. Ta wartość nie może być typu null. Zdarzenia wywołania zwrotnego i detektora są wysyłane za pomocą tego Executor, co ułatwia kontrolowanie, który wątek jest używany. Aby wysyłać zdarzenia za pomocą głównego wątku aplikacji, możesz użyć funkcji Context.getMainExecutor(). W przeciwnym razie podaj Executor, który wysyła dane do odpowiedniego wątku.

receiver OutcomeReceiver: zwraca listę obiektów SurfacePackageToken, z których każdy jest nieprzezroczystym odwołaniem do obiektu RenderingConfig zwróconego przez IsolatedService lub Exception w przypadku błędu. Zwrócone obiekty SurfacePackageToken można wykorzystać w kolejnych wywołaniach requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver), aby wyświetlić wynik w widoku. Aplikacja wywołująca i IsolatedService muszą uzgodnić oczekiwany rozmiar tej listy. Wpis na zwracanej liście obiektów SurfacePackageToken może mieć wartość null, aby wskazać, że usługa nie ma danych wyjściowych dla danej powierzchni. W przypadku błędu odbiorca zwraca jedną z tych wyjątków: Zwraca PackageManager.NameNotFoundException, jeśli pakiet przetwarzacza nie jest zainstalowany lub nie ma prawidłowego pliku manifestu ODP. Zwraca ClassNotFoundException, jeśli nie można znaleźć klasy modułu obsługi. Zwraca wartość OnDevicePersonalizationException, jeśli wykonanie modułu obsługi zakończy się niepowodzeniem.

requestSurfacePackage

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

Żąda wstawienia SurfaceControlViewHost.SurfacePackage do SurfaceView w aplikacji wywołującej. Pakiet powierzchni będzie zawierał View z zawartością będącą wynikiem wcześniejszego wywołania #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) uruchomionego w piaskownicy OnDevicePersonalization.

Parametry
surfacePackageToken SurfacePackageToken: odwołanie do elementu SurfacePackageToken zwróconego przez poprzednie wywołanie #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver). Ta wartość nie może być null.

surfaceViewHostToken IBinder: identyfikator hosta SurfaceView, który jest zwracany przez SurfaceView.getHostToken() po dodaniu SurfaceView do hierarchii widoku. Ta wartość nie może być null.

displayId int: całkowity identyfikator wyświetlacza logicznego, na którym ma być wyświetlany element SurfaceControlViewHost.SurfacePackage zwracany przez funkcję Context.getDisplay().getDisplayId().

width int: szerokość SurfaceControlViewHost.SurfacePackage w pikselach.

height int: wysokość SurfaceControlViewHost.SurfacePackage w pikselach.

executor Executor: Executor, dla którego ma zostać wywołane wywołanie zwrotne. Wartość nie może wynosić null. Zdarzenia wywołania zwrotnego i detektora są wysyłane za pomocą tego Executor, co ułatwia kontrolowanie, który wątek jest używany. Aby wysyłać zdarzenia za pomocą głównego wątku aplikacji, możesz użyć funkcji Context.getMainExecutor(). W przeciwnym razie podaj Executor, który wysyła dane do odpowiedniego wątku.

receiver OutcomeReceiver: zwraca wartość SurfaceControlViewHost.SurfacePackage w przypadku powodzenia lub Exception w przypadku niepowodzenia. Typ wyjątku to: OnDevicePersonalizationException, jeśli wykonanie modułu nie powiedzie się. Ta wartość nie może być null.