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()
获取应用注册的所有 |
String
|
getClientPackageName()
返回客户端应用的软件包名称。 |
SharedPreferences
|
getClientSharedPreferences()
返回包含从客户端应用同步的数据的 |
List<SandboxedSdk>
|
getSandboxedSdks()
获取沙盒中加载的 SDK 的信息。 |
void
|
loadSdk(String sdkName, Bundle params, Executor executor, OutcomeReceiver<SandboxedSdk, LoadSdkException> receiver)
在 SDK 沙盒 Java 进程中加载 SDK。 |
IBinder
|
registerSdkSandboxActivityHandler(SdkSandboxActivityHandler sdkSandboxActivityHandler)
注册 |
void
|
unregisterSdkSandboxActivityHandler(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<SandboxedSdk, LoadSdkException> 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 |
唯一标识传入的 SdkSandboxActivityHandler 的 IBinder。此值不能为 null。 |
unregisterSdkSandboxActivityHandler
public void unregisterSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)
注销已注册的 SdkSandboxActivityHandler。
如果传入的 SdkSandboxActivityHandler 已注册,则将其注销。否则,不执行任何操作。
注销后,如果 SDK 需要新的 Activity,可以再次注册同一处理程序对象或创建一个新对象。
如果已注销处理程序的 IBinder 令牌用于启动 Activity,则 Activity 将无法启动。
| 参数 | |
|---|---|
sdkSandboxActivityHandler |
SdkSandboxActivityHandler:是要注销的 SdkSandboxActivityHandler。此值不能为 null。 |
| 返回值 | |
|---|---|
void |
此值不能为 null。 |