ProtectedSignalsManager
public
class
ProtectedSignalsManager
extends Object
java.lang.Object | |
↳ | android.adservices.signals.ProtectedSignalsManager |
ProtectedSignalsManager 为应用和广告 SDK 提供用于管理其受保护信号的 API。
总结
公共方法 | |
---|---|
static
ProtectedSignalsManager
|
get(Context context)
用于创建 ProtectedSignalsManager 实例的工厂方法。 |
void
|
updateSignals(UpdateSignalsRequest updateSignalsRequest, Executor executor, OutcomeReceiver<Object, Exception> receiver)
updateSignals API 将从 URI 中检索 JSON,后者用于说明要添加或移除哪些信号。 |
继承的方法 | |
---|---|
公共方法
get
public static ProtectedSignalsManager get (Context context)
用于创建 ProtectedSignalsManager 实例的工厂方法。
参数 | |
---|---|
context |
Context :要使用的 Context 。此值不能为 null 。 |
开球回攻次数 | |
---|---|
ProtectedSignalsManager |
ProtectedSignalsManager 实例。此值不能为 null 。 |
updateSignals
public void updateSignals (UpdateSignalsRequest updateSignalsRequest, Executor executor, OutcomeReceiver<Object, Exception> receiver)
updateSignals API 将从 URI 中检索 JSON,后者用于说明要添加或移除哪些信号。此 API 还支持注册编码器端点。该端点用于下载编码逻辑,以便对信号进行编码。
JSON 的顶级键必须与以下 5 个命令之一相对应:
“put”- 添加新信号,并使用同一键覆盖所有现有信号。此值是一个 JSON 对象,其中键是与要放置的键对应的 Base 64 字符串,而值为与要放置的值对应的 Base 64 字符串。
“append”- 将新信号/信号附加到信号时序,并在序列大小超出指定上限时移除最早的信号,为新信号腾出空间。 此元素的值是一个 JSON 对象,其中键是与要附加的键对应的 Base 64 个字符串,值是包含两个字段的对象:“values”和“maxSignals”。 “values”是一系列 Base 64 的字符串,分别对应要附加到时间序列的信号值。“maxSignals”是此时间序列中允许的值的数量上限。如果当前与相应密钥关联的信号数量超出 maxSignals,最早的信号将被移除。请注意,您可以附加到通过 put 添加的键。请注意,附加的值数量超过上限会导致失败。
“put_if_not_present”- 仅在没有具有相同键的现有信号时添加新信号。此元素的值是一个 JSON 对象,其中键是与要放置的键对应的 Base 64 字符串,值为与要放置的值对应的 Base 64 字符串。
“remove”- 移除键的信号。此值是一个以 base 64 字符串的列表,与应删除的信号的键相对应。
“update_encoder”- 提供用于更新端点的操作,以及可用于检索编码逻辑的 URI。用于提供更新操作的子键是“action”,目前支持的值包括:
- “REGISTER”:如果是首次提供编码器端点,则会注册该端点,或者使用新提供的端点覆盖现有端点。若要执行“REGISTER”操作,必须提供“端点”。
用于提供编码器端点的子键为“endpoint”,值为端点的 URI 字符串。
对于每个 JSON,只能由一个命令操作密钥。如果两个命令尝试对同一个按键执行操作,此方法将通过 IllegalArgumentException
如果存在以下情况,此调用会失败并返回 SecurityException
:
ownerPackageName
没有调用应用的软件包名称,并且/或者- 买方无权使用该 API。
如果存在以下情况,此调用会失败并返回 IllegalArgumentException
:
- 从服务器检索到的 JSON 无效。
- 提供的 URI 无效。
如果发出调用的软件包超出了允许的速率限制并受到限制,则此调用会失败并返回 LimitExceededException
。
如果发生内部服务错误,此调用将失败并显示 IllegalStateException
。
需要 AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE
参数 | |
---|---|
updateSignalsRequest |
UpdateSignalsRequest :此值不能为 null 。 |
executor |
Executor :此值不能为 null 。
回调和监听器事件通过此 Executor 进行分派,从而提供了一种简单的方法来控制使用哪个线程。如需通过应用的主线程分派事件,您可以使用 Context.getMainExecutor() 。
否则,请提供可分派给适当线程的 Executor 。 |
receiver |
OutcomeReceiver :此值不能为 null 。 |