SandboxedSdkProvider

public abstract class SandboxedSdkProvider
extends Object

java.lang.Object
   ↳ android.app.sdksandbox.SandboxedSdkProvider


封裝 SDK 沙箱可以用來與載入沙箱的 SDK 互動的 API。

SDK 必須實作這個抽象類別,才能產生供 SDK 沙箱呼叫的進入點。

摘要

公用建構函式

SandboxedSdkProvider()

公用方法

final void attachContext(Context context)

設定之後可使用 getContext() 接收的 SDK Context

void beforeUnloadSdk()

執行讓 SDK 在卸載前釋出資源所需的工作。

final Context getContext()

傳回先前透過 SandboxedSdkProvider#attachContext 設定的 Context

abstract View getView(Context windowContext, Bundle params, int width, int height)

要求將檢視畫面遠端轉譯至用戶端應用程式的處理程序。

abstract SandboxedSdk onLoadSdk(Bundle params)

執行讓 SDK 啟動處理要求所需的工作。

繼承方法

公用建構函式

SandboxedSdkProvider

已新增至 API 級別 34
Ad Services Extensions 4 也已納入
public SandboxedSdkProvider ()

公用方法

attachContext

已新增至 API 級別 34
Ad Services Extensions 4 也已納入
public final void attachContext (Context context)

設定之後可使用 getContext() 接收的 SDK Context。這個方法會在叫用 onLoadSdk(Bundle) 前呼叫。需要 Context 的作業皆不應在此之前執行,因為直到呼叫此方法後,SandboxedSdkProvider#getContext 才不會傳回空值。

如果已設定基礎結構定義,就會擲回 IllegalStateException。

參數
context Context:新的基礎結構定義。此值不能為 null

beforeUnloadSdk

已新增至 API 級別 34
Ad Services Extensions 4 也已納入
public void beforeUnloadSdk ()

執行讓 SDK 在卸載前釋出資源所需的工作。

SDK 沙箱管理工具會在載入 SDK 前呼叫此函式。SDK 無法叫用任何先前透過 SandboxedSdk.getInterface() 傳回至用戶端的 Binder。

SDK 不應在這裡執行耗時偏長的任何工作,例如 I/O 和網路呼叫,

getContext

已新增至 API 級別 34
Ad Services Extensions 4 也已納入
public final Context getContext ()

傳回先前透過 SandboxedSdkProvider#attachContext 設定的 Context。如果先前未設定結構定義,則會傳回空值。

傳回
Context

getView

已新增至 API 級別 34
Ad Services Extensions 4 也已納入
public abstract View getView (Context windowContext, 
                Bundle params, 
                int width, 
                int height)

要求將檢視畫面遠端轉譯至用戶端應用程式的處理程序。

傳回的 View 將納入 SurfacePackage 中。產生的 SurfacePackage 將傳回至用戶端應用程式。

SDK 不應在這裡執行耗時偏長的任何工作,例如 I/O 和網路呼叫,這可能導致 SDK 無法接收來自用戶端的要求。

參數
windowContext Context:用於顯示檢視畫面的螢幕的 Context 此值不能為 null

params Bundle:從要求檢視畫面的用戶端應用程式傳出的參數清單 此值不能為 null

width int:傳回的檢視畫面會依據此寬度 (以像素為單位) 的假想視窗進行版面配置。

height int:傳回的檢視畫面會依據此高度 (以像素為單位) 的假想視窗進行版面配置。

傳回
View SDK 沙箱向要求檢視畫面的用戶端應用程式傳遞的 View 此值不能為 null

onLoadSdk

已新增至 API 級別 34
Ad Services Extensions 4 也已納入
public abstract SandboxedSdk onLoadSdk (Bundle params)

執行讓 SDK 啟動處理要求所需的工作。

SDK 沙箱會在載入 SDK 後呼叫此函式。

為了準備好處理即將發出的要求,SDK 應該執行所需的工作。不過,SDK 不應在這裡執行耗時偏長的任何工作,例如 I/O 和網路呼叫,這可能導致 SDK 無法接收來自用戶端的要求。此外,不應執行需要仰賴 SDK 沙箱中載入的其他 SDK 才能初始化。

呼叫這個方法之前,SDK 不應執行任何需要 Context 物件的作業。

參數
params Bundle:用戶端載入 SDK 時傳出的參數清單。這個參數可以留空。此值不能為 null

傳回
SandboxedSdk 傳回 SandboxedSdk,並傳遞回用戶端。用戶端會使用建立 SandboxedSdk 物件的 IBinder 呼叫 SDK。此值不能為 null

擲回
LoadSdkException