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,该 JSON 说明了需要添加或移除哪些信号。

继承的方法

Object clone()

创建并返回此对象的副本。

boolean equals(Object obj)

指示某个其他对象是否“等于”此对象。

void finalize()

当垃圾回收功能确定对某个对象没有更多引用时,由垃圾回收器针对此对象调用该方法。

final Class<?> getClass()

返回此 Object 的运行时类。

int hashCode()

返回对象的哈希代码值。

final void notify()

唤醒正在等待此对象的监控器的单个线程。

final void notifyAll()

唤醒正在等待此对象的监控器的所有线程。

String toString()

返回对象的字符串表示。

final void wait(long timeoutMillis, int nanos)

使当前线程处于等待状态,直到其被唤醒(通常在收到通知或被中断时),或者实际经过了一定的时间。

final void wait(long timeoutMillis)

让当前线程进入等待状态,直到其被唤醒(通常在收到通知或被中断时),或者实际经过了一定的时间为止。

final void wait()

让当前线程进入等待状态,直到其被唤醒(通常在收到通知或被中断时)

公共方法

get

public static ProtectedSignalsManager get (Context context)

用于创建 ProtectedSignalsManager 实例的工厂方法。

参数
context Context:要使用的 Context。此值不能为 null

返回
ProtectedSignalsManager ProtectedSignalsManager 实例。此值不能为 null

更新信号

public void updateSignals (UpdateSignalsRequest updateSignalsRequest, 
                Executor executor, 
                OutcomeReceiver<ObjectException> receiver)

updateSignals API 将从 URI 中检索一个 JSON,该 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”,目前支持的值包括:

  1. “REGISTER”:在首次提供编码器端点时注册该端点,或使用新提供的端点覆盖现有端点。若要执行“REGISTER”操作,必须提供“endpoint”。

用于提供编码器端点的子键为“endpoint”,值为端点的 URI 字符串。

每个 JSON 只能对键执行一条命令。如果两个命令尝试对同一键进行操作,此方法将通过 IllegalArgumentException

如果 SecurityException

  1. ownerPackageName 未调用应用的软件包名称,并且/或者
  2. 买方无权使用该 API。

如果存在以下情况,此调用将失败并显示 IllegalArgumentException

  1. 从服务器检索到的 JSON 无效。
  2. 所提供的 URI 无效。

如果调用软件包超出允许的速率限制并被节流,此调用将会失败并返回 LimitExceededException

如果遇到内部服务错误,此调用会失败并返回 IllegalStateException
需要 AdServicesPermissions.ACCESS_ADSERVICES_CUSTOM_AUDIENCE

参数
updateSignalsRequest UpdateSignalsRequest:此值不能为 null

executor Executor:此值不能为 null。 通过此 Executor 分派回调和监听器事件,从而让您能够轻松控制要使用的线程。如需通过应用的主线程分派事件,可以使用 Context.getMainExecutor()。 否则,请提供分派给相应线程的 Executor

receiver OutcomeReceiver:此值不能为 null