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()
获取应用注册的所有 |
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_服务
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() |
getSandboxedSdk
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
收到通知。
调用方只能将客户端应用所依赖的 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
public IBinder registerSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)
注册 SdkSandboxActivityHandler
后,会返回该标识符。
此函数会注册 SDK 创建的 SdkSandboxActivityHandler
实现,并返回唯一标识传递的 SdkSandboxActivityHandler
对象的 IBinder
。
如果在未取消注册的情况下多次注册了同一个 SdkSandboxActivityHandler
,将返回同一 IBinder
令牌。
参数 | |
---|---|
sdkSandboxActivityHandler |
SdkSandboxActivityHandler :是要注册的 SdkSandboxActivityHandler 。
此值不能为 null 。 |
开球回攻次数 | |
---|---|
IBinder |
IBinder 唯一标识传递的 SdkSandboxActivityHandler 。
此值不能为 null 。 |
unregisterSdkSandboxActivityHandler
public void unregisterSdkSandboxActivityHandler (SdkSandboxActivityHandler sdkSandboxActivityHandler)
取消注册已注册的 SdkSandboxActivityHandler
。
如果传递的 SdkSandboxActivityHandler
已注册,则将取消注册。否则,它不会执行任何操作。
取消注册后,SDK 可以重新注册同一个处理程序对象,或创建新的处理程序对象,以防 SDK 需要新的 Activity
。
如果用于启动 Activity
的未注册处理程序的 IBinder
令牌,Activity
将无法启动。
参数 | |
---|---|
sdkSandboxActivityHandler |
SdkSandboxActivityHandler :是要取消注册的 SdkSandboxActivityHandler 。
此值不能为 null 。 |
开球回攻次数 | |
---|---|
void |
此值不能为 null 。 |