ContactKeyClient


interface ContactKeyClient : HasApiKey


Um cliente para a API Contact Key.

Resumo

Funções públicas

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

Retorna um fluxo de atualizações de chaves de contato da conta.

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

Recupera todas as entradas de chave de contato de criptografia de ponta a ponta pertencentes a apps visíveis para o autor da chamada.

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

Retorna todas as entradas de chave própria de criptografia de ponta a ponta pertencentes a apps visíveis para o autor da chamada.

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

Recupera todas as chaves de contato da conta de criptografia de ponta a ponta que pertencem ao app de chamada, estejam elas associadas a um contato ou não.

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

Recupera todas as chaves de contato de criptografia de ponta a ponta que pertencem ao app de chamada em todos os contatos.

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

Recupera todas as entradas de chave de contato de criptografia de ponta a ponta que pertencem ao app e à conta do autor da chamada em todos os contatos.

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

Recupera uma entrada de chave de contato de criptografia de ponta a ponta com base no lookupKey, deviceId, accountId e no nome do pacote do autor da chamada inferido.

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

Retorna uma entrada de chave própria de criptografia de ponta a ponta com base no deviceId, no accountId e no nome do pacote inferido do autor da chamada.

Task<Int>

Retorna o tamanho máximo permitido de uma chave em bytes.

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

Retorna uma intent para mostrar a atividade de integração e marca que a integração foi mostrada neste dispositivo.

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

Recupera todas as entradas de chave de contato de criptografia de ponta a ponta para um determinado lookupKey que pertence ao app de chamada.

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

Retorna todas as entradas de chave própria de criptografia de ponta a ponta pertencentes ao app de chamada.

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

Retorna uma intent para a atividade "Ler o QR code".

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

Retorna uma intent para a atividade "Ler o QR code" de uma conta específica.

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

Retorna uma intent para a atividade "Mostrar QR code".

Task<Boolean>

Retorna uma tarefa que é concluída com êxito, esteja a API disponível ou não.

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

Registra um listener para atualizações de chaves de contato da conta.

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

Remove uma entrada de chave de contato da conta de criptografia de ponta a ponta pertencente ao app de chamada.

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

Remove uma entrada de chave de contato de criptografia de ponta a ponta pertencente ao app de chamada.

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

Remove uma entrada de chave própria de criptografia de ponta a ponta usando o deviceId e o nome do pacote inferido do caller.

Task<Boolean>

Cancela o registro de um listener para atualizações de chaves de contato da conta.

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

Insere um lote de chaves de contato da conta.

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

Insere uma nova entrada na tabela de chaves de contato de criptografia de ponta a ponta ou atualiza uma se ela já existir.

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

Insere uma nova entrada na tabela de chaves de contato de criptografia de ponta a ponta ou atualiza uma se ela já existir.

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

Insere uma nova entrada na tabela de autochaves de criptografia de ponta a ponta ou atualiza uma se ela já existir.

Funções públicas

getAccountContactKeysFlow

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

Retorna um fluxo de atualizações de chaves de contato da conta.

O fluxo será emitido quando qualquer chave de qualquer accountId fornecido for atualizada, adicionada ou removida. Ele vai emitir a lista de todas as chaves para os accountIds fornecidos, não apenas as que foram atualizadas.

Parâmetros
accountIds: List<String>

a lista de IDs de contas para detectar atualizações.

Retorna
Flow<List<E2eeAccountContactKeyParcelable>>

um fluxo que emite as listas de E2eeAccountContactKeyParcelable para os accountIds fornecidos sempre que uma chave é atualizada, adicionada ou removida.

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

se os eventos de callback forem processados muito lentamente.

getAllE2eeContactKeys

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

Recupera todas as entradas de chave de contato de criptografia de ponta a ponta pertencentes a apps visíveis para o autor da chamada. As chaves serão removidas dos dados de deviceId, timeUpdated e keyValue.

Parâmetros
lookupKey: String

o valor que faz referência ao contato

Retorna
Task<E2eeContactKeyListParcelable>

um E2eeContactKeyListParcelable que contém uma lista das informações da chave de contato da criptografia de ponta a ponta ou uma lista vazia se nenhuma chave for encontrada.

getAllE2eeSelfKeys

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

Retorna todas as entradas de chave própria de criptografia de ponta a ponta pertencentes a apps visíveis para o autor da chamada. As chaves serão removidas dos dados de deviceId, timeUpdated e keyValue.

Retorna
Task<E2eeSelfKeyListParcelable>

um E2eeSelfKeyListParcelable que contém uma lista das informações da chave própria de criptografia de ponta a ponta ou uma lista vazia se nenhuma chave própria for encontrada.

getAllOwnerE2eeAccountContactKeys

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

Recupera todas as chaves de contato da conta de criptografia de ponta a ponta que pertencem ao app de chamada, estejam elas associadas a um contato ou não.

Retorna
Task<ImmutableList<E2eeAccountContactKeyParcelable>>

uma lista de objetos E2eeAccountContactKeyParcelable que contêm as informações da chave de contato da criptografia de ponta a ponta ou uma lista vazia se nenhuma chave for encontrada.

getAllOwnerE2eeContactKeys

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

Recupera todas as chaves de contato de criptografia de ponta a ponta que pertencem ao app de chamada em todos os contatos.

Esse método deve ser usado apenas para recuperar chaves que tenham pelo menos um contato associado a elas. Se você precisar recuperar chaves que não estão associadas a nenhum contato, use getAllOwnerE2eeAccountContactKeys.

Retorna
Task<E2eeContactKeyListParcelable>

um E2eeContactKeyListParcelable que contém uma lista das informações da chave de contato da criptografia de ponta a ponta ou uma lista vazia se nenhuma chave for encontrada.

getE2eeAccountKeysForAccount

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

Recupera todas as entradas de chave de contato de criptografia de ponta a ponta que pertencem ao app e à conta do autor da chamada em todos os contatos. Inclui chaves não associadas a nenhum contato.

Retorna
Task<ImmutableList<E2eeAccountContactKeyParcelable>>

uma lista de objetos E2eeAccountContactKeyParcelable que contêm as informações da chave de contato da criptografia de ponta a ponta ou uma lista vazia se nenhuma chave for encontrada.

getE2eeContactKey

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

Recupera uma entrada de chave de contato de criptografia de ponta a ponta com base no lookupKey, deviceId, accountId e no nome do pacote do autor da chamada inferido.

Parâmetros
lookupKey: String

o valor que faz referência ao contato

deviceId: String

um identificador especificado pelo app para o dispositivo

accountId: String

um identificador especificado pelo app para a conta

Retorna
Task<E2eeContactKeyParcelable?>

um E2eeContactKeyParcelable que contém as informações da chave de contato ou nulo se nenhuma chave de contato for encontrada.

getE2eeSelfKey

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

Retorna uma entrada de chave própria de criptografia de ponta a ponta com base no deviceId, no accountId e no nome do pacote inferido do autor da chamada.

Parâmetros
deviceId: String

um identificador especificado pelo app para o dispositivo

accountId: String

um identificador especificado pelo app para a conta

Retorna
Task<E2eeSelfKeyParcelable?>

um E2eeSelfKeyParcelable que contém as informações da chave própria de criptografia de ponta a ponta ou nulo se nenhuma chave própria for encontrada.

getMaxKeySizeBytes

fun getMaxKeySizeBytes(): Task<Int>

Retorna o tamanho máximo permitido de uma chave em bytes.

getOnboardingIntent

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

Retorna uma intent para mostrar a atividade de integração e marca que a integração foi mostrada neste dispositivo. Isso requer um nextActivity, que pode ser a string show ou scan. Se scan, o lookupKey do contato a ser verificado é obrigatório.

Parâmetros
nextActivity: OnboardingNextActivity

a próxima atividade a ser mostrada após a atividade de integração. Precisa ser show ou scan.

lookupKey: String?

o valor que faz referência ao contato. Obrigatório se nextActivity for scan.

packageName: String?

o nome do pacote associado ao app cujas chaves são necessárias (opcional).

getOwnerE2eeContactKeys

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

Recupera todas as entradas de chave de contato de criptografia de ponta a ponta para um determinado lookupKey que pertence ao app de chamada.

Parâmetros
lookupKey: String

o valor que faz referência ao contato

Retorna
Task<E2eeContactKeyListParcelable>

um E2eeContactKeyListParcelable que contém uma lista das informações da chave de contato da criptografia de ponta a ponta ou uma lista vazia se nenhuma chave for encontrada.

getOwnerE2eeSelfKeys

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

Retorna todas as entradas de chave própria de criptografia de ponta a ponta pertencentes ao app de chamada.

Retorna
Task<E2eeSelfKeyListParcelable>

um E2eeSelfKeyListParcelable que contém as informações da chave própria de criptografia de ponta a ponta ou uma lista vazia se nenhuma chave própria for encontrada.

getScanQrCodeIntent

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

Retorna uma intent para a atividade "Ler o QR code".

Parâmetros
lookupKey: String

o valor que faz referência ao contato

skipOnboarding: Boolean = false

Não é usado no momento.

getScanQrCodeIntentForAccount

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

Retorna uma intent para a atividade "Ler o QR code" de uma conta específica.

Parâmetros
packageName: String

o nome do pacote associado à conta que o usuário quer verificar

accountId: String

o ID da conta associada à conta que o usuário quer verificar

getShowQrCodeIntent

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

Retorna uma intent para a atividade "Mostrar QR code".

Parâmetros
packageName: String?

o nome do pacote associado ao app cujas chaves são necessárias (opcional)

skipOnboarding: Boolean = false

Não é usado no momento.

isEnabled

fun isEnabled(): Task<Boolean>

Retorna uma tarefa que é concluída com êxito, esteja a API disponível ou não.

Se a API estiver disponível, a tarefa retornada terá um resultado verdadeiro. Caso contrário, será falso.

As exceções normalmente geradas quando a API está indisponível serão capturadas, e uma tarefa que retorna "false" será retornada.

registerAccountContactKeysListener

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

Registra um listener para atualizações de chaves de contato da conta.

O listener será chamado quando qualquer chave de qualquer accountId fornecido for atualizada, adicionada ou removida. Ela será chamada com a lista de todas as chaves dos accountIds fornecidos, não apenas as que foram atualizadas.

Parâmetros
accountIds: List<String>

a lista de IDs de contas para registrar o listener.

listener: OnAccountContactKeysUpdatedListener

o listener a ser registrado.

removeE2eeAccountContactKey

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

Remove uma entrada de chave de contato da conta de criptografia de ponta a ponta pertencente ao app de chamada.

Parâmetros
deviceId: String

um identificador especificado pelo app para o dispositivo

accountId: String

um identificador especificado pelo app para a conta

removeE2eeContactKey

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

Remove uma entrada de chave de contato de criptografia de ponta a ponta pertencente ao app de chamada.

Parâmetros
lookupKey: String

o valor que faz referência ao contato

deviceId: String

um identificador especificado pelo app para o dispositivo

accountId: String

um identificador especificado pelo app para a conta

removeE2eeSelfKey

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

Remove uma entrada de chave própria de criptografia de ponta a ponta usando o deviceId e o nome do pacote inferido do caller.

Parâmetros
deviceId: String

um identificador especificado pelo app para o dispositivo

accountId: String

um identificador especificado pelo app para a conta

unregisterAccountContactKeysListener

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

Cancela o registro de um listener para atualizações de chaves de contato da conta.

Parâmetros
listener: OnAccountContactKeysUpdatedListener

o listener a ser cancelado.

updateAllE2eeAccountKeys

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

Insere um lote de chaves de contato da conta.

Funciona de maneira semelhante a updateOrInsertE2eeContactKey, mas permite que várias chaves sejam inseridas/atualizadas de uma só vez. Cada chave é inserida em uma transação própria. Portanto, algumas chaves podem ser inseridas mesmo que a tarefa gere uma exceção.

Os clientes podem optar por lidar com falhas temporárias reenviando todo o lote, já que essa API não afeta o status das chaves já inseridas.

Para cada chave, se um lookupKey for fornecido, mas as informações básicas do contato (displayName, phoneNumber, emailAddress) não forem, essa API também tentará recuperar o nome, o número de telefone e o endereço de e-mail do contato do provedor de contatos. Ao recuperar a chave, os apps de gerenciamento de contatos precisam usar essas informações para garantir que ela seja usada apenas para o contato a que se destina.

O app Android Key Verification armazena essas informações no dispositivo e as expõe apenas para chamadores de API que têm a permissão READ_CONTACTS.

Se nenhuma lookupKey for fornecida para uma chave, essa API vai armazenar uma chave que não está vinculada a nenhum contato.

Parâmetros
accountKeyInfos: List<E2eeAccountKeyInfo>

a lista de objetos E2eeAccountKeyInfo que contêm as informações da chave de contato da criptografia de ponta a ponta.

updateOrInsertE2eeContactKey

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

Insere uma nova entrada na tabela de chaves de contato de criptografia de ponta a ponta ou atualiza uma se ela já existir. A chave de contato de criptografia de ponta a ponta inserida/atualizada pertence ao app autor da chamada.

Essa API também armazena o nome, o número de telefone e o endereço de e-mail do contato do Provedor de contatos, além da chave. Ao recuperar a chave, os apps de gerenciamento de contatos precisam usar essas informações para garantir que ela seja usada apenas para o contato a que se destina.

O app Android Key Verification armazena essas informações no dispositivo e as expõe apenas para chamadores de API que têm a permissão READ_CONTACTS.

Parâmetros
lookupKey: String

valor que faz referência ao contato

deviceId: String

um identificador especificado pelo app para o dispositivo

accountId: String

um identificador especificado pelo app para a conta

keyValue: ByteArray

os bytes brutos da chave (o tamanho máximo é 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>

Insere uma nova entrada na tabela de chaves de contato de criptografia de ponta a ponta ou atualiza uma se ela já existir. A chave de contato de criptografia de ponta a ponta inserida/atualizada pertence ao app autor da chamada.

Para cada chave de pesquisa fornecida, essa API também armazena o nome, o número de telefone e o endereço de e-mail do contato do Provedor de contatos, junto com a chave. Ao recuperar a chave, os apps de gerenciamento de contatos precisam usar essas informações para garantir que ela seja usada apenas para o contato a que se destina.

O app Android Key Verification armazena essas informações no dispositivo e as expõe apenas para chamadores de API que têm a permissão READ_CONTACTS.

Se a lista de chaves de pesquisa estiver vazia, essa API vai armazenar uma chave que não está associada a nenhum contato.

Chamar essa API com uma ou mais chaves de pesquisa vai atualizar os metadados da chave para associá-la aos contatos fornecidos, mas não vai remover associações existentes para contatos que não estão na lista. Para remover uma associação entre um contato e uma chave, chame removeE2eeContactKey com a chave de pesquisa apropriada.

Parâmetros
lookupKeys: List<String>

lista potencialmente vazia de chaves de pesquisa do CP2 que fazem referência a contatos associados à chave

deviceId: String

um identificador especificado pelo app para o dispositivo

accountId: String

um identificador especificado pelo app para a conta

keyValue: ByteArray

os bytes brutos da chave (o tamanho máximo é de getMaxKeySizeBytes bytes)

updateOrInsertE2eeSelfKey

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

Insere uma nova entrada na tabela de autochaves de criptografia de ponta a ponta ou atualiza uma se ela já existir.

Parâmetros
deviceId: String

um identificador especificado pelo app para o dispositivo

accountId: String

um identificador especificado pelo app para a conta

keyValue: ByteArray

os bytes brutos da chave (o tamanho máximo é de getMaxKeySizeBytes bytes)