已新增至 API 級別 34
Ad Services Extensions 5 也已納入

SdkSandboxController

public class SdkSandboxController
extends Object

java.lang.Object
   ↳ android.app.sdksandbox.sdkprovider.SdkSandboxController


沙箱中載入的 SDK 所使用的控制器,可存取 SDK 沙箱提供的資訊。

可讓 SDK 與 SDK 沙箱中的其他 SDK 通訊,並瞭解目前在其中載入的 SDK 狀態。

您可以使用 Context.getSystemService(Class)class 取得 SdkSandboxController 的例項。您也可以使用 SandboxedSdkProvider.getContext() 取得 Context

摘要

常數

String SDK_SANDBOX_CONTROLLER_SERVICE

公用方法

List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces()

擷取應用程式註冊的所有 AppOwnedSdkSandboxInterface

String getClientPackageName()

傳回用戶端應用程式的套件名稱。

SharedPreferences getClientSharedPreferences()

傳回 SharedPreferences,其中包含從用戶端應用程式同步處理的資料。

List<SandboxedSdk> getSandboxedSdks()

擷取在沙箱中載入的 SDK 相關資訊。

void loadSdk(String sdkName, Bundle params, Executor executor, OutcomeReceiver<SandboxedSdkLoadSdkException> receiver)

在 SDK 沙箱 Java 程序中載入 SDK。

IBinder registerSdkSandboxActivityHandler(SdkSandboxActivityHandler sdkSandboxActivityHandler)

在註冊 SdkSandboxActivityHandler 後傳回 ID。

void unregisterSdkSandboxActivityHandler(SdkSandboxActivityHandler sdkSandboxActivityHandler)

取消註冊已註冊的 SdkSandboxActivityHandler

繼承方法

常數

SDK_SANDBOX_CONTROLLER_SERVICE

已新增至 API 級別 34
Ad Services Extensions 5 也已納入
public static final String SDK_SANDBOX_CONTROLLER_SERVICE

常數值:"sdk_sandbox_controller_service"

公用方法

getAppOwnedSdkSandboxInterfaces

public List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces ()

擷取應用程式註冊的所有 AppOwnedSdkSandboxInterface

傳回
List<AppOwnedSdkSandboxInterface> AppOwnedSdkSandboxInterface 清單,內含目前註冊的所有 AppOwnedSdkSandboxInterface。此值不能為 null

擲回
UnsupportedOperationException 前提是該控制器是從非預期內容取得使用 SandboxedSdkProvider#getContext() 取得適當的背景資訊

getClientPackageName

public String getClientPackageName ()

傳回用戶端應用程式的套件名稱。

傳回
String 此值不能為 null

擲回
UnsupportedOperationException 前提是該控制器是從非預期內容取得使用 SandboxedSdkProvider#getContext() 取得正確的背景資訊。

getClientSharedPreferences

已新增至 API 級別 34
Ad Services Extensions 5 也已納入
public SharedPreferences getClientSharedPreferences ()

傳回 SharedPreferences,其中包含從用戶端應用程式同步處理的資料。

您可在此 SharedPreferences 中找到用戶端應用程式透過 SdkSandboxManager.addSyncedSharedPreferencesKeys(Set) 同步處理的金鑰。

傳回的 SharedPreferences 應僅限讀取。無法寫入。

傳回
SharedPreferences SharedPreferences 包含從用戶端應用程式同步處理的資料。此值不能為 null

擲回
UnsupportedOperationException 前提是該控制器是從非預期內容取得使用 SandboxedSdkProvider#getContext() 取得適當的背景資訊

getSandboxedSdks

已新增至 API 級別 34
Ad Services Extensions 5 也已納入
public List<SandboxedSdk> getSandboxedSdks ()

擷取在沙箱中載入的 SDK 相關資訊。

傳回
List<SandboxedSdk> 這個 SandboxedSdk 清單包含目前載入的所有 SDK 此值不能為 null

擲回
UnsupportedOperationException 前提是該控制器是從非預期內容取得使用 SandboxedSdkProvider#getContext() 取得適當的背景資訊

loadSdk

public void loadSdk (String sdkName, 
                Bundle params, 
                Executor executor, 
                OutcomeReceiver<SandboxedSdkLoadSdkException> receiver)

在 SDK 沙箱 Java 程序中載入 SDK。

使用 sdkName 以非同步方式將 SDK 程式庫載入 SDK 沙箱程序。來電者將透過 receiver 收到通知。

呼叫端只能載入用戶端應用程式依附的 SDKs 至 SDK 沙箱。

參數
sdkName String:要載入的 SDK 的名稱。此值不能為 null

params Bundle:要傳遞至 SDK 的其他參數,格式為 Bundle (如用戶端與 SDK 達成協議)。此值不能為 null

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

receiver OutcomeReceiver:這個欄位會在成功執行時收到 SandboxedSdk,或是 LoadSdkException。此值不能為 null

擲回
UnsupportedOperationException 前提是該控制器是從非預期內容取得使用 SandboxedSdkProvider#getContext() 取得適當的背景資訊

RegisterSdkSandboxActivityHandler

已新增至 API 級別 34
Ad Services Extensions 7 也已納入
public IBinder registerSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)

在註冊 SdkSandboxActivityHandler 後傳回 ID。

這個函式會註冊由 SDK 建立的 SdkSandboxActivityHandler 實作,並傳回可明確識別所傳遞 SdkSandboxActivityHandler 物件的 IBinder

如果多次註冊同一個 SdkSandboxActivityHandler,但並未取消註冊,系統會傳回相同的 IBinder 權杖。

參數
sdkSandboxActivityHandler SdkSandboxActivityHandler:要註冊的 SdkSandboxActivityHandler。此值不能為 null

傳回
IBinder IBinder 可專門用於識別傳遞的 SdkSandboxActivityHandler。此值不能為 null

取消註冊 SdkSandboxActivityHandler

已新增至 API 級別 34
Ad Services Extensions 7 也已納入
public void unregisterSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)

取消註冊已註冊的 SdkSandboxActivityHandler

如果傳遞的 SdkSandboxActivityHandler 已註冊,系統就會取消註冊。否則,系統不會執行任何動作。

取消註冊後,SDK 可以再次註冊相同的處理常式物件,或是建立新的物件,以防其需要新的 Activity

如果用於啟動 Activity 的未註冊處理常式的 IBinder 權杖,Activity 將無法啟動。

參數
sdkSandboxActivityHandler SdkSandboxActivityHandler:要取消註冊的 SdkSandboxActivityHandler。此值不能為 null

傳回
void 此值不能為 null