已在 API 级别 34 中引入
也已在广告服务扩展 4 中引入

沙盒化 SDK

public final class SandboxedSdk
extends Object implements Parcelable

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


表示沙盒进程中加载的 SDK。

成功响应 SdkSandboxManager#loadSdk 时返回。应用可以 可通过调用 SdkSandboxManager#loadSdk 获取。它应使用此对象获取 通过 getInterface() 连接到 SDK。

SDK 应在调用 SandboxedSdkProvider#onLoadSdk 时创建该标识符,并丢弃所有 在调用 SandboxedSdkProvider#beforeUnloadSdk() 时对该对象的引用。此外, 在以下时间后,SDK 应使对从 getInterface() 返回的 IBinder 发出的调用失败: 已调用 SandboxedSdkProvider#beforeUnloadSdk()。

摘要

继承的常量

字段

public static final Creator<SandboxedSdk> CREATOR

公共构造函数

SandboxedSdk(IBinder sdkInterface)

创建一个 SandboxedSdk 对象。

公共方法

int describeContents()

描述此 Parcelable 中包含的特殊对象的种类。 实例的编排表示法。

IBinder getInterface()

返回为响应 SdkSandboxManager.loadSdk(String, Bundle, Executor, OutcomeReceiver) 而加载的 SDK 的接口。

SharedLibraryInfo getSharedLibraryInfo()

返回 SDK 的 SharedLibraryInfo。

void writeToParcel(Parcel dest, int flags)

将此对象展平为 Parcel。

继承的方法

字段

CREATOR

已在 API 级别 34 中引入
也已在广告服务扩展 4 中引入
public static final Creator<SandboxedSdk> CREATOR

公共构造函数

沙盒化 SDK

已在 API 级别 34 中引入
也已在广告服务扩展 4 中引入
public SandboxedSdk (IBinder sdkInterface)

创建一个 SandboxedSdk 对象。

参数
sdkInterface IBinder:SDK 的接口。这将是沙盒化 SDK 的入口点 应用场景在 SDK 加载到沙盒中之前,SDK 应使其保持有效状态; 一旦卸载,此接口的调用就会失败。

稍后可以使用 getInterface() 检索此接口。 此值不能为 null。

公共方法

describeContents

在 API 级别 34 中引入
public int describeContents ()

描述此 Parcelable 实例的编排表示中包含的特殊对象的种类。例如,如果对象将在 writeToParcel(android.os.Parcel, int) 的输出中添加一个文件描述符,那么此方法的返回值就必须包含 CONTENTS_FILE_DESCRIPTOR 位。

返回
int 一个位掩码,表示编组的特殊对象类型集 。 值为 0 或 CONTENTS_FILE_DESCRIPTOR

getInterface

已在 API 级别 34 中引入
也已在广告服务扩展 4 中引入
public IBinder getInterface ()

返回为响应 SdkSandboxManager.loadSdk(String, Bundle, Executor, OutcomeReceiver) 而加载的 SDK 的接口。如果 Binder 已null 变为不可用状态,以响应 SDK 被卸载。

返回
IBinder

getSharedLibraryInfo

已在 API 级别 34 中引入
也已在广告服务扩展 5 中引入
public SharedLibraryInfo getSharedLibraryInfo ()

返回 SDK 的 SharedLibraryInfo。

返回
SharedLibraryInfo 此值不能为 null。

抛出
IllegalStateException 如果系统服务尚未将 SharedLibraryInfo 附加到 SDK 发送的 SandboxedSdk 对象,则会发生该错误。

writeToParcel

在 API 级别 34 中引入
public void writeToParcel (Parcel dest, 
                int flags)

将此对象扁平化为 Parcel。

参数
dest Parcel:此值不能为 null。

flags int:关于如何写入对象的其他标志。可为 0 或 Parcelable.PARCELABLE_WRITE_RETURN_VALUE。 值为 0 或 Parcelable.PARCELABLE_WRITE_RETURN_VALUE 和 android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES 的组合