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 的实例。反过来,可以使用 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 后,会返回该标识符。

void unregisterSdkSandboxActivityHandler(SdkSandboxActivityHandler sdkSandboxActivityHandler)

取消注册已注册的 SdkSandboxActivityHandler

继承的方法

常量

SDK_SANDBOX_CONTROLLER_服务

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()

getSandboxedSdk

API 级别 34 中添加
也在广告服务扩展 5 中添加
public List<SandboxedSdk> getSandboxedSdks ()

提取沙盒中加载的 SDK 的相关信息。

开球回攻次数
List<SandboxedSdk> 包含所有当前加载 SDK 的 SandboxedSdk 列表。此值不能为 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()

注册 SdkSandboxActivityHandler

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

注册 SdkSandboxActivityHandler 后,会返回该标识符。

此函数会注册 SDK 创建的 SdkSandboxActivityHandler 实现,并返回唯一标识传递的 SdkSandboxActivityHandler 对象的 IBinder

如果在未取消注册的情况下多次注册了同一个 SdkSandboxActivityHandler,将返回同一 IBinder 令牌。

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

开球回攻次数
IBinder IBinder 唯一标识传递的 SdkSandboxActivityHandler。 此值不能为 null

unregisterSdkSandboxActivityHandler

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

取消注册已注册的 SdkSandboxActivityHandler

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

取消注册后,SDK 可以重新注册同一个处理程序对象,或创建新的处理程序对象,以防 SDK 需要新的 Activity

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

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

开球回攻次数
void 此值不能为 null