OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

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


OnDevicePersonalizationManager 可為應用程式提供用於載入 IsolatedService 的獨立程序,並與之互動。 應用程式可以要求 IsolatedService 來產生要顯示的內容 應用程式檢視區塊階層的 SurfaceView 內,並寫入 裝置端儲存空間的永久性結果,聯合分析可用來 跨裝置統計分析或聯合學習進行模型訓練。顯示 呼叫應用程式無法直接存取內容和永久輸出內容。

摘要

公用方法

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

在 OnDevicePersonalization 沙箱中執行 IsolatedService

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

要求將 SurfaceControlViewHost.SurfacePackage 插入 呼叫應用程式中的 SurfaceView

繼承方法

公用方法

執行

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

在 OnDevicePersonalization 沙箱中執行 IsolatedService。 平台會透過獨立程序繫結至指定的 IsolatedService 並呼叫 IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer) 並搭配呼叫端提供的參數IsolatedService 執行完畢後, 平台會傳回參照服務結果的權杖給呼叫端。 這些符記隨後可用於在 SurfaceView

參數
handler ComponentNameIsolatedServiceComponentName。 此值不能為 null

params PersistableBundle:從呼叫應用程式傳遞至應用程式的 PersistableBundle IsolatedService。系統已定義這個參數的預期內容 IsolatedService。平台不會解讀這個參數。 此值不能為 null

executor Executor:叫用回呼的 Executor。 此值不能為 null。 回呼和事件監聽器事件會透過這個 Executor,可讓您輕鬆控制 如何透過應用程式的主執行緒分派事件 可以使用 Context.getMainExecutor()。 否則,請提供會調度至適當執行緒的 Executor

receiver OutcomeReceiver:傳回 SurfacePackageToken 物件清單, 不透明參照,RenderingConfig IsolatedServiceException 失敗時失敗。傳回的 SurfacePackageToken 物件可用於後續的 requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) 呼叫,在檢視畫面中顯示結果。發出呼叫的應用程式 IsolatedService 必須同意這份清單的預期大小。 SurfacePackageToken 物件所傳回清單中的項目,可以是空值, 表示服務沒有該特定介面的輸出內容。 如果發生錯誤,接收端會傳回下列其中一種例外狀況: 如果處理常式,則傳回 PackageManager.NameNotFoundException 未安裝套件,或套件的 ODP 資訊清單無效。 如果找不到處理常式類別,會傳回 ClassNotFoundException。 如果處理常式執行作業失敗,會傳回 OnDevicePersonalizationException

requestSurfacePackage

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

要求將 SurfaceControlViewHost.SurfacePackage 插入 呼叫應用程式中的 SurfaceView。表面套件會包含 將 View 替換為先前呼叫 執行時間:#execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) 進入裝置個人化沙箱。

參數
surfacePackageToken SurfacePackageToken:先前 SurfacePackageToken 傳回的 SurfacePackageToken 參照 呼叫 #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver)。 此值不能為 null

surfaceViewHostToken IBinderSurfaceView 的 hostToken, 由 SurfaceView.getHostToken() 傳回 (在 已將 SurfaceView 新增至檢視區塊階層。 此值不能為 null

displayId int:要在其中顯示邏輯的邏輯顯示畫面的整數 ID SurfaceControlViewHost.SurfacePackage,由 傳回 Context.getDisplay().getDisplayId()

width intSurfaceControlViewHost.SurfacePackage 的寬度 單位。

height intSurfaceControlViewHost.SurfacePackage 的高度 單位。

executor Executor:叫用回呼的 Executor 此值不能為 null。 回呼和事件監聽器事件會透過這個 Executor,可讓您輕鬆控制 如何透過應用程式的主執行緒分派事件 可以使用 Context.getMainExecutor()。 否則,請提供會調度至適當執行緒的 Executor

receiver OutcomeReceiver:這會傳回 SurfaceControlViewHost.SurfacePackage 是成功的關鍵,或 失敗時則為 Exception。例外狀況類型為 如果處理常式的執行作業失敗,則為 OnDevicePersonalizationException。 此值不能為 null