SdkSandboxController

public class SdkSandboxController
extends Object

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


SDK 沙盒中加载的 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

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

public SharedPreferences getClientSharedPreferences ()

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

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

返回的 SharedPreferences 只能读取。不支持写入。

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

抛出异常
UnsupportedOperationException 如果控制器是从意外上下文获取的。使用 SandboxedSdkProvider#getContext() 获取正确的上下文

getSandboxedSdks

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 获得通知。

调用方只能将客户端应用依赖的 SDK 加载到 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

public IBinder registerSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)

注册 SdkSandboxActivityHandler 后返回其标识符。

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

如果同一 SdkSandboxActivityHandler 未注销而多次注册,将返回相同的 IBinder 令牌。

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

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

unregisterSdkSandboxActivityHandler

public void unregisterSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)

注销已注册的 SdkSandboxActivityHandler

如果传入的 SdkSandboxActivityHandler 已注册,则将其注销。否则,不执行任何操作。

注销后,如果 SDK 需要新的 Activity,可以再次注册同一处理程序对象或创建一个新对象。

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

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

返回值
void 此值不能为 null