已在 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() 获取。

摘要

公共方法

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

继承的方法

Object clone()

创建并返回此对象的副本。

boolean equals(Object obj)

指示某个其他对象是否“等于”这个。

void finalize()

垃圾回收时,由垃圾回收器针对对象调用 确定没有对对象的更多引用。

final Class<?> getClass()

返回此 Object 的运行时类。

int hashCode()

返回对象的哈希代码值。

final void notify()

唤醒正在等待此对象的 监控。

final void notifyAll()

唤醒正在等待此对象的监控器的所有线程。

String toString()

返回对象的字符串表示。

final void wait(long timeoutMillis, int nanos)

导致当前线程处于等待状态,直到其被唤醒,这通常是 通知中断,或者直到 经过了一定量的实时。

final void wait(long timeoutMillis)

导致当前线程处于等待状态,直到其被唤醒,这通常是 通知中断,或者直到 经过了一定量的实时。

final void wait()

导致当前线程处于等待状态,直到其被唤醒,这通常是 通知中断

常量

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