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 |
void
|
requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Żąda wstawienia |
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.SurfacePackage, Exception> 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 . |