已在 API 级别 34 中引入
也已在广告服务扩展 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 的实例。Context 进而可以 使用 SandboxedSdkProvider.getContext() 获取。

摘要

常量

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 后返回其标识符。

void unregisterSdkSandboxActivityHandler(SdkSandboxActivityHandler sdkSandboxActivityHandler)

取消注册已注册的 SdkSandboxActivityHandler

继承的方法

常量

SDK_SANDBOX_CONTROLLER_SERVICE

已在 API 级别 34 中引入
也已在广告服务扩展 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 中引入
也已在广告服务扩展 5 中引入
public SharedPreferences getClientSharedPreferences ()

返回 SharedPreferences,其中包含从客户端应用同步的数据。

客户端应用使用 SdkSandboxManager.addSyncedSharedPreferencesKeys(Set) 同步的密钥可在此 SharedPreferences 中找到。

只能读取返回的 SharedPreferences。写入数据并不是 支持。

返回
SharedPreferences SharedPreferences,包含从客户端应用同步的数据。 此值不能为 null

抛出
UnsupportedOperationException 如果从非预期 上下文。针对合适的情境使用 SandboxedSdkProvider#getContext()

getSandboxedSdks

已在 API 级别 34 中引入
也已在广告服务扩展 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:要以 Bundle 的形式传递给 SDK 的其他参数 与 SDK 之间达成一致。 此值不能为 null

executor Executor:要在其上调用接收器的 Executor。 此值不能为 null。 通过此 Executor 分派回调和监听器事件,从而让您能够轻松控制要使用的线程。如需通过应用的主线程分派事件,可以使用 Context.getMainExecutor()。 否则,请提供分派给相应线程的 Executor

receiver OutcomeReceiver:此方法会在运行成功时收到 SandboxedSdk,也可能会收到 LoadSdkException。 此值不能为 null

抛出
UnsupportedOperationException 如果从非预期 上下文。针对合适的情境使用 SandboxedSdkProvider#getContext()

registerSdkSandboxActivityHandler

已在 API 级别 34 中引入
也已在广告服务扩展 7 中引入
public IBinder registerSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)

注册 SdkSandboxActivityHandler 后返回其标识符。

此函数注册 SdkSandboxActivityHandler(由 一个 SDK,并返回一个 IBinder,它唯一标识传递的 SdkSandboxActivityHandler 对象。

如果同一 SdkSandboxActivityHandler 注册了多次,但未记录 取消注册,系统将返回相同的IBinder令牌。

参数
sdkSandboxActivityHandler SdkSandboxActivityHandler:要注册的 SdkSandboxActivityHandler。 此值不能为 null

返回
IBinder IBinder 唯一标识传递的 SdkSandboxActivityHandler。 此值不能为 null

unregisterSdkSandboxActivityHandler

已在 API 级别 34 中引入
也已在广告服务扩展 7 中引入
public void unregisterSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)

取消注册已注册的 SdkSandboxActivityHandler

如果传递的 SdkSandboxActivityHandler 已注册,则会被取消注册。 否则,它不会执行任何操作。

取消注册后,SDK 可以再次注册同一处理程序对象,也可以在 它需要新的 Activity

如果未注册的处理程序的 IBinder 令牌用于启动 ActivityActivity将无法启动。

参数
sdkSandboxActivityHandler SdkSandboxActivityHandler:要取消注册的 SdkSandboxActivityHandler。 此值不能为 null

返回
void 此值不能为 null