ContactKeyClient


interface ContactKeyClient : HasApiKey


Es un cliente para la API de Contact Key.

Resumen

Funciones públicas

Flow<List<E2eeAccountContactKeyParcelable>>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getAccountContactKeysFlow(accountIds: List<String>)

Devuelve un flujo de actualizaciones de claves de contacto de la cuenta.

Task<E2eeContactKeyListParcelable>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getAllE2eeContactKeys(lookupKey: String)

Recupera todas las entradas de claves de contacto de encriptación de extremo a extremo que pertenecen a las apps visibles para la persona que llama.

Task<E2eeSelfKeyListParcelable>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getAllE2eeSelfKeys()

Devuelve todas las entradas de claves propias de encriptación de extremo a extremo que pertenecen a las apps visibles para la persona que llama.

Task<ImmutableList<E2eeAccountContactKeyParcelable>>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getAllOwnerE2eeAccountContactKeys()

Recupera todas las claves de contacto de la cuenta de encriptación de extremo a extremo que pertenecen a la app que llama, ya sea que estén asociadas a un contacto o no.

Task<E2eeContactKeyListParcelable>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getAllOwnerE2eeContactKeys()

Recupera todas las claves de contacto de encriptación de extremo a extremo que pertenecen a la app de llamada, en todos los contactos.

Task<ImmutableList<E2eeAccountContactKeyParcelable>>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getE2eeAccountKeysForAccount(accountId: String)

Recupera todas las entradas de claves de contacto de encriptación de extremo a extremo que pertenecen a la app de llamada y a la cuenta del llamador, en todos los contactos.

Task<E2eeContactKeyParcelable?>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getE2eeContactKey(lookupKey: String, deviceId: String, accountId: String)

Recupera una entrada de clave de contacto de encriptación de extremo a extremo a partir de lookupKey, deviceId, accountId y el nombre del paquete de la persona que llama inferido.

Task<E2eeSelfKeyParcelable?>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getE2eeSelfKey(deviceId: String, accountId: String)

Devuelve una entrada de clave propia de encriptación de extremo a extremo, dados el deviceId, el accountId y el nombre del paquete inferido del llamador.

Task<Int>

Devuelve el tamaño máximo permitido de una clave en bytes.

Task<PendingIntent>
getOnboardingIntent(
    nextActivity: OnboardingNextActivity,
    lookupKey: String?,
    packageName: String?
)

Devuelve un intent para mostrar la actividad de Onboarding y marca que se mostró Onboarding en este dispositivo.

Task<E2eeContactKeyListParcelable>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getOwnerE2eeContactKeys(lookupKey: String)

Recupera todas las entradas de claves de contacto de encriptación de extremo a extremo para un lookupKey determinado que pertenece a la app que realiza la llamada.

Task<E2eeSelfKeyListParcelable>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
getOwnerE2eeSelfKeys()

Devuelve todas las entradas de la clave propia de encriptación de extremo a extremo que son propiedad de la app que realiza la llamada.

Task<PendingIntent>
getScanQrCodeIntent(lookupKey: String, skipOnboarding: Boolean)

Devuelve un intent para la actividad "Escanear código QR".

Task<PendingIntent>
getScanQrCodeIntentForAccount(packageName: String, accountId: String)

Devuelve un intent para la actividad "Escanear código QR" de una cuenta específica.

Task<PendingIntent>
getShowQrCodeIntent(packageName: String?, skipOnboarding: Boolean)

Devuelve un intent para la actividad "Mostrar código QR".

Task<Boolean>

Devuelve una tarea que se completa correctamente, ya sea que la API esté disponible o no.

Task<Void>
@RequiresPermission(value = "android.permission.READ_CONTACTS")
registerAccountContactKeysListener(
    accountIds: List<String>,
    listener: OnAccountContactKeysUpdatedListener
)

Registra un objeto de escucha para las actualizaciones de las claves de contacto de la cuenta.

Task<Void>
@RequiresPermission(value = "android.permission.WRITE_CONTACTS")
removeE2eeAccountContactKey(deviceId: String, accountId: String)

Quita una entrada de clave de contacto de la cuenta de encriptación de extremo a extremo que pertenece a la app que realiza la llamada.

Task<Void>
@RequiresPermission(value = "android.permission.WRITE_CONTACTS")
removeE2eeContactKey(
    lookupKey: String,
    deviceId: String,
    accountId: String
)

Quita una entrada de clave de contacto de encriptación de extremo a extremo que pertenece a la app de llamada.

Task<Void>
@RequiresPermission(value = "android.permission.WRITE_CONTACTS")
removeE2eeSelfKey(deviceId: String, accountId: String)

Quita una entrada de clave propia de encriptación de extremo a extremo, dado el deviceId y el nombre del paquete inferido del llamador.

Task<Boolean>

Anula el registro de un objeto de escucha para las actualizaciones de las claves de contacto de la cuenta.

Task<Void>
@RequiresPermission(allOf = ["android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"])
updateAllE2eeAccountKeys(accountKeyInfos: List<E2eeAccountKeyInfo>)

Inserta un lote de claves de contacto de la cuenta.

Task<Void>
@RequiresPermission(allOf = ["android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"])
updateOrInsertE2eeContactKey(
    lookupKey: String,
    deviceId: String,
    accountId: String,
    keyValue: ByteArray
)

Inserta una entrada nueva en la tabla de claves de contacto de encriptación de extremo a extremo o actualiza una si ya existe.

Task<Void>
@RequiresPermission(allOf = ["android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"])
updateOrInsertE2eeContactKey(
    lookupKeys: List<String>,
    deviceId: String,
    accountId: String,
    keyValue: ByteArray
)

Inserta una entrada nueva en la tabla de claves de contacto de encriptación de extremo a extremo o actualiza una si ya existe.

Task<Void>
@RequiresPermission(value = "android.permission.WRITE_CONTACTS")
updateOrInsertE2eeSelfKey(
    deviceId: String,
    accountId: String,
    keyValue: ByteArray
)

Inserta una entrada nueva en la tabla de claves propias de encriptación de extremo a extremo o actualiza una si ya existe.

Funciones públicas

getAccountContactKeysFlow

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getAccountContactKeysFlow(accountIds: List<String>): Flow<List<E2eeAccountContactKeyParcelable>>

Devuelve un flujo de actualizaciones de claves de contacto de la cuenta.

El flujo se emitirá cuando se actualice, agregue o quite cualquier clave para cualquier accountId proporcionado. Se emitirá la lista de todas las claves para los accountIds proporcionados, no solo las que se actualizaron.

Parámetros
accountIds: List<String>

Es la lista de IDs de cuentas para las que se deben escuchar las actualizaciones.

Muestra
Flow<List<E2eeAccountContactKeyParcelable>>

Es un flujo que emite las listas de E2eeAccountContactKeyParcelable para los accountIds proporcionados cada vez que se actualiza, agrega o quita una clave.

Arroja
com.google.android.libraries.sdkcoroutines.flow.CallbackChannelFullException

si los eventos de devolución de llamada se procesan demasiado lento.

getAllE2eeContactKeys

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getAllE2eeContactKeys(lookupKey: String): Task<E2eeContactKeyListParcelable>

Recupera todas las entradas de claves de contacto de encriptación de extremo a extremo que pertenecen a las apps visibles para la persona que llama. Las claves se despojarán de los datos de deviceId, timeUpdated y keyValue.

Parámetros
lookupKey: String

El valor que hace referencia al contacto

Muestra
Task<E2eeContactKeyListParcelable>

Un E2eeContactKeyListParcelable que contiene una lista de la información de la clave de contacto de encriptación de extremo a extremo o una lista vacía si no se encuentran claves.

getAllE2eeSelfKeys

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getAllE2eeSelfKeys(): Task<E2eeSelfKeyListParcelable>

Devuelve todas las entradas de claves propias de encriptación de extremo a extremo que pertenecen a las apps visibles para la persona que llama. Las claves se despojarán de los datos de deviceId, timeUpdated y keyValue.

Muestra
Task<E2eeSelfKeyListParcelable>

Un E2eeSelfKeyListParcelable que contiene una lista de la información de la clave propia de encriptación de extremo a extremo, o una lista vacía si no se encuentran claves propias.

getAllOwnerE2eeAccountContactKeys

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getAllOwnerE2eeAccountContactKeys(): Task<ImmutableList<E2eeAccountContactKeyParcelable>>

Recupera todas las claves de contacto de la cuenta de encriptación de extremo a extremo que pertenecen a la app que llama, ya sea que estén asociadas a un contacto o no.

Muestra
Task<ImmutableList<E2eeAccountContactKeyParcelable>>

Es una lista de objetos E2eeAccountContactKeyParcelable que contiene la información de la clave de contacto de encriptación de extremo a extremo o una lista vacía si no se encuentran claves.

getAllOwnerE2eeContactKeys

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getAllOwnerE2eeContactKeys(): Task<E2eeContactKeyListParcelable>

Recupera todas las claves de contacto de encriptación de extremo a extremo que pertenecen a la app de llamada, en todos los contactos.

Este método solo debe usarse para recuperar claves que tengan al menos un contacto asociado. Si necesitas recuperar claves que no están asociadas a ningún contacto, usa getAllOwnerE2eeAccountContactKeys.

Muestra
Task<E2eeContactKeyListParcelable>

Un E2eeContactKeyListParcelable que contiene una lista de la información de la clave de contacto de encriptación de extremo a extremo o una lista vacía si no se encuentran claves.

getE2eeAccountKeysForAccount

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getE2eeAccountKeysForAccount(accountId: String): Task<ImmutableList<E2eeAccountContactKeyParcelable>>

Recupera todas las entradas de claves de contacto de encriptación de extremo a extremo que pertenecen a la app de llamada y a la cuenta del llamador, en todos los contactos. Incluye las llaves que no están asociadas a ningún contacto.

Muestra
Task<ImmutableList<E2eeAccountContactKeyParcelable>>

Es una lista de objetos E2eeAccountContactKeyParcelable que contiene la información de la clave de contacto de encriptación de extremo a extremo o una lista vacía si no se encuentran claves.

getE2eeContactKey

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getE2eeContactKey(lookupKey: String, deviceId: String, accountId: String): Task<E2eeContactKeyParcelable?>

Recupera una entrada de clave de contacto de encriptación de extremo a extremo a partir de lookupKey, deviceId, accountId y el nombre del paquete de la persona que llama inferido.

Parámetros
lookupKey: String

El valor que hace referencia al contacto

deviceId: String

Un identificador especificado por la app para el dispositivo

accountId: String

Es un identificador especificado por la app para la cuenta.

Muestra
Task<E2eeContactKeyParcelable?>

Un E2eeContactKeyParcelable que contiene la información de la clave de contacto o un valor nulo si no se encuentra ninguna clave de contacto.

getE2eeSelfKey

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getE2eeSelfKey(deviceId: String, accountId: String): Task<E2eeSelfKeyParcelable?>

Devuelve una entrada de clave propia de encriptación de extremo a extremo, dados el deviceId, el accountId y el nombre del paquete inferido del llamador.

Parámetros
deviceId: String

Un identificador especificado por la app para el dispositivo

accountId: String

Es un identificador especificado por la app para la cuenta.

Muestra
Task<E2eeSelfKeyParcelable?>

Un E2eeSelfKeyParcelable que contiene la información de la clave propia de encriptación de extremo a extremo o un valor nulo si no se encuentra ninguna clave propia.

getMaxKeySizeBytes

fun getMaxKeySizeBytes(): Task<Int>

Devuelve el tamaño máximo permitido de una clave en bytes.

getOnboardingIntent

fun getOnboardingIntent(
    nextActivity: OnboardingNextActivity,
    lookupKey: String?,
    packageName: String?
): Task<PendingIntent>

Devuelve un intent para mostrar la actividad de Onboarding y marca que se mostró Onboarding en este dispositivo. Esto requiere un nextActivity, que puede ser la cadena show o scan. Si es scan, se requiere el lookupKey del contacto que se buscará.

Parámetros
nextActivity: OnboardingNextActivity

Es la siguiente actividad que se mostrará después de la actividad de incorporación. Debe ser show o scan.

lookupKey: String?

Es el valor que hace referencia al contacto. Obligatorio si nextActivity es scan.

packageName: String?

Es el nombre del paquete asociado con la app cuyas claves se necesitan (opcional).

getOwnerE2eeContactKeys

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getOwnerE2eeContactKeys(lookupKey: String): Task<E2eeContactKeyListParcelable>

Recupera todas las entradas de claves de contacto de encriptación de extremo a extremo para un lookupKey determinado que pertenece a la app que realiza la llamada.

Parámetros
lookupKey: String

El valor que hace referencia al contacto

Muestra
Task<E2eeContactKeyListParcelable>

Un E2eeContactKeyListParcelable que contiene una lista de la información de la clave de contacto de encriptación de extremo a extremo o una lista vacía si no se encuentran claves.

getOwnerE2eeSelfKeys

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun getOwnerE2eeSelfKeys(): Task<E2eeSelfKeyListParcelable>

Devuelve todas las entradas de la clave propia de encriptación de extremo a extremo que son propiedad de la app que realiza la llamada.

Muestra
Task<E2eeSelfKeyListParcelable>

Un E2eeSelfKeyListParcelable que contiene la información de la clave propia de encriptación de extremo a extremo o una lista vacía si no se encuentran claves propias.

getScanQrCodeIntent

fun getScanQrCodeIntent(lookupKey: String, skipOnboarding: Boolean = false): Task<PendingIntent>

Devuelve un intent para la actividad "Escanear código QR".

Parámetros
lookupKey: String

El valor que hace referencia al contacto

skipOnboarding: Boolean = false

Actualmente inactivo.

getScanQrCodeIntentForAccount

fun getScanQrCodeIntentForAccount(packageName: String, accountId: String): Task<PendingIntent>

Devuelve un intent para la actividad "Escanear código QR" de una cuenta específica.

Parámetros
packageName: String

El nombre del paquete asociado con la cuenta que el usuario desea verificar

accountId: String

Es el ID de la cuenta asociada a la cuenta que el usuario desea verificar.

getShowQrCodeIntent

fun getShowQrCodeIntent(packageName: String?, skipOnboarding: Boolean = false): Task<PendingIntent>

Devuelve un intent para la actividad "Mostrar código QR".

Parámetros
packageName: String?

Nombre del paquete asociado con la app cuyas claves se necesitan (opcional)

skipOnboarding: Boolean = false

Actualmente inactivo.

isEnabled

fun isEnabled(): Task<Boolean>

Devuelve una tarea que se completa correctamente, ya sea que la API esté disponible o no.

Si la API está disponible, la tarea devuelta tendrá un resultado verdadero; de lo contrario, será falso.

Las excepciones que suelen generarse cuando la API no está disponible se detectarán y, en su lugar, se devolverá una tarea que muestre el valor falso de forma correcta.

registerAccountContactKeysListener

@RequiresPermission(value = "android.permission.READ_CONTACTS")
fun registerAccountContactKeysListener(
    accountIds: List<String>,
    listener: OnAccountContactKeysUpdatedListener
): Task<Void>

Registra un objeto de escucha para las actualizaciones de las claves de contacto de la cuenta.

Se llamará al objeto de escucha cuando se actualice, agregue o quite cualquier clave para cualquier accountId proporcionado. Se llamará con la lista de todas las claves para los accountIds proporcionados, no solo las que se actualizaron.

Parámetros
accountIds: List<String>

Es la lista de IDs de cuentas para las que se registrará el objeto de escucha.

listener: OnAccountContactKeysUpdatedListener

Es el objeto de escucha que se registrará.

removeE2eeAccountContactKey

@RequiresPermission(value = "android.permission.WRITE_CONTACTS")
fun removeE2eeAccountContactKey(deviceId: String, accountId: String): Task<Void>

Quita una entrada de clave de contacto de la cuenta de encriptación de extremo a extremo que pertenece a la app que realiza la llamada.

Parámetros
deviceId: String

Un identificador especificado por la app para el dispositivo

accountId: String

Es un identificador especificado por la app para la cuenta.

removeE2eeContactKey

@RequiresPermission(value = "android.permission.WRITE_CONTACTS")
fun removeE2eeContactKey(
    lookupKey: String,
    deviceId: String,
    accountId: String
): Task<Void>

Quita una entrada de clave de contacto de encriptación de extremo a extremo que pertenece a la app de llamada.

Parámetros
lookupKey: String

El valor que hace referencia al contacto

deviceId: String

Un identificador especificado por la app para el dispositivo

accountId: String

Es un identificador especificado por la app para la cuenta.

removeE2eeSelfKey

@RequiresPermission(value = "android.permission.WRITE_CONTACTS")
fun removeE2eeSelfKey(deviceId: String, accountId: String): Task<Void>

Quita una entrada de clave propia de encriptación de extremo a extremo, dado el deviceId y el nombre del paquete inferido del llamador.

Parámetros
deviceId: String

Un identificador especificado por la app para el dispositivo

accountId: String

Es un identificador especificado por la app para la cuenta.

unregisterAccountContactKeysListener

@CanIgnoreReturnValue
fun unregisterAccountContactKeysListener(
    listener: OnAccountContactKeysUpdatedListener
): Task<Boolean>

Anula el registro de un objeto de escucha para las actualizaciones de las claves de contacto de la cuenta.

Parámetros
listener: OnAccountContactKeysUpdatedListener

Es el objeto de escucha que se anulará.

updateAllE2eeAccountKeys

@RequiresPermission(allOf = ["android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"])
fun updateAllE2eeAccountKeys(accountKeyInfos: List<E2eeAccountKeyInfo>): Task<Void>

Inserta un lote de claves de contacto de la cuenta.

Se comporta de manera similar a updateOrInsertE2eeContactKey, pero permite insertar o actualizar varias claves a la vez. Cada clave se inserta en su propia transacción, por lo que es posible que se inserten algunas claves incluso si la tarea arroja una excepción.

Los clientes pueden optar por controlar las fallas temporales reenviando todo el lote, ya que esta API no afectará el estado de las claves ya insertadas.

Para cada clave, si se proporciona un lookupKey, pero no se proporciona la información básica del contacto (displayName, phoneNumber, emailAddress), esta API también intentará recuperar el nombre, el número de teléfono y la dirección de correo electrónico del contacto del proveedor de contactos. Cuando recuperen la clave, las apps de administración de contactos deben usar esta información para asegurarse de que la clave solo se use para el contacto para el que se creó.

La app de Android Key Verification almacena esta información en el dispositivo y solo la expone a los llamadores de la API que tienen el permiso READ_CONTACTS.

Si no se proporciona ningún lookupKey para una clave, esta API almacenará una clave que no esté vinculada a ningún contacto.

Parámetros
accountKeyInfos: List<E2eeAccountKeyInfo>

Es la lista de objetos E2eeAccountKeyInfo que contienen la información de la clave de contacto de encriptación de extremo a extremo.

updateOrInsertE2eeContactKey

@RequiresPermission(allOf = ["android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"])
fun updateOrInsertE2eeContactKey(
    lookupKey: String,
    deviceId: String,
    accountId: String,
    keyValue: ByteArray
): Task<Void>

Inserta una entrada nueva en la tabla de claves de contacto de encriptación de extremo a extremo o actualiza una si ya existe. La app que llama es propietaria de la clave de contacto de encriptación de extremo a extremo insertada o actualizada.

Esta API también almacenará el nombre, el número de teléfono y la dirección de correo electrónico del contacto del proveedor de contactos, junto con la clave. Cuando recuperen la clave, las apps de administración de contactos deben usar esta información para asegurarse de que la clave solo se use para el contacto para el que se creó.

La app de Android Key Verification almacena esta información en el dispositivo y solo la expone a los llamadores de la API que tienen el permiso READ_CONTACTS.

Parámetros
lookupKey: String

Valor que hace referencia al contacto

deviceId: String

Un identificador especificado por la app para el dispositivo

accountId: String

Es un identificador especificado por la app para la cuenta.

keyValue: ByteArray

Los bytes sin procesar de la clave (el tamaño máximo es de getMaxKeySizeBytes bytes)

updateOrInsertE2eeContactKey

@RequiresPermission(allOf = ["android.permission.READ_CONTACTS", "android.permission.WRITE_CONTACTS"])
fun updateOrInsertE2eeContactKey(
    lookupKeys: List<String>,
    deviceId: String,
    accountId: String,
    keyValue: ByteArray
): Task<Void>

Inserta una entrada nueva en la tabla de claves de contacto de encriptación de extremo a extremo o actualiza una si ya existe. La app que llama es propietaria de la clave de contacto de encriptación de extremo a extremo insertada o actualizada.

Para cada clave de búsqueda proporcionada, esta API también almacenará el nombre, el número de teléfono y la dirección de correo electrónico del contacto del proveedor de contactos, junto con la clave. Cuando recuperen la clave, las apps de administración de contactos deben usar esta información para asegurarse de que la clave solo se use para el contacto para el que se creó.

La app de Android Key Verification almacena esta información en el dispositivo y solo la expone a los llamadores de la API que tienen el permiso READ_CONTACTS.

Si la lista de claves de búsqueda está vacía, esta API almacenará una clave que no esté asociada a ningún contacto.

Si llamas a esta API con una o más claves de búsqueda, se actualizarán los metadatos de la clave para asociarla con los contactos proporcionados, pero no se quitarán las asociaciones existentes para los contactos que no se proporcionen en la lista. Para quitar la asociación entre un contacto y una clave, llama a removeE2eeContactKey con la clave de búsqueda adecuada.

Parámetros
lookupKeys: List<String>

Lista potencialmente vacía de claves de búsqueda de CP2 que hacen referencia a los contactos con los que se asocia la clave

deviceId: String

Un identificador especificado por la app para el dispositivo

accountId: String

Es un identificador especificado por la app para la cuenta.

keyValue: ByteArray

Los bytes sin procesar de la clave (el tamaño máximo es de getMaxKeySizeBytes bytes)

updateOrInsertE2eeSelfKey

@RequiresPermission(value = "android.permission.WRITE_CONTACTS")
fun updateOrInsertE2eeSelfKey(
    deviceId: String,
    accountId: String,
    keyValue: ByteArray
): Task<Void>

Inserta una entrada nueva en la tabla de claves propias de encriptación de extremo a extremo o actualiza una si ya existe.

Parámetros
deviceId: String

Un identificador especificado por la app para el dispositivo

accountId: String

Es un identificador especificado por la app para la cuenta.

keyValue: ByteArray

Los bytes sin procesar de la clave (el tamaño máximo es de getMaxKeySizeBytes bytes)