ContactKeyClient


interface ContactKeyClient : HasApiKey


Client pour l'API Contact Key.

Résumé

Fonctions publiques

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

Renvoie un flux de mises à jour des clés de contact du compte.

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

Récupère toutes les entrées de clé de contact de chiffrement de bout en bout appartenant aux applications visibles par l'appelant.

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

Renvoie toutes les entrées de clé auto-chiffrée de bout en bout appartenant aux applications visibles par l'appelant.

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

Récupère toutes les clés de contact de compte de chiffrement de bout en bout appartenant à l'application d'appel, qu'elles soient associées ou non à un contact.

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

Récupère toutes les clés de contact de chiffrement de bout en bout appartenant à l'application appelante, pour tous les contacts.

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

Récupère toutes les entrées de clé de contact de chiffrement de bout en bout qui appartiennent à l'application appelante et au compte de l'appelant, pour tous les contacts.

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

Récupère une entrée de clé de contact de chiffrement de bout en bout en fonction de lookupKey, deviceId, accountId et du nom du package de l'appelant inféré.

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

Renvoie une entrée de clé auto-chiffrée de bout en bout en fonction de deviceId, accountId et du nom de package inféré de l'appelant.

Task<Int>

Renvoie la taille maximale autorisée d'une clé en octets.

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

Renvoie une intention d'afficher l'activité d'intégration et indique que l'intégration a été affichée sur cet appareil.

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

Récupère toutes les entrées de clé de contact de chiffrement de bout en bout pour un lookupKey donné appartenant à l'application appelante.

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

Renvoie toutes les entrées de clé de chiffrement de bout en bout appartenant à l'application appelante.

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

Renvoie un intent à l'activité "Scan QR Code".

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

Renvoie un intent à l'activité "Scanner le code QR" pour un compte spécifique.

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

Renvoie un intent à l'activité "Afficher le code QR".

Task<Boolean>

Renvoie une tâche qui se termine correctement, que l'API soit disponible ou non.

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

Enregistre un écouteur pour les mises à jour des clés de contact du compte.

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

Supprime une entrée de clé de contact de compte de chiffrement de bout en bout appartenant à l'application appelante.

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

Supprime une entrée de clé de contact de chiffrement de bout en bout appartenant à l'application appelante.

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

Supprime une entrée de clé auto-chiffrée de bout en bout en fonction de l'ID de l'appareil et du nom de package inféré de l'appelant.

Task<Boolean>

Désenregistre un écouteur pour les mises à jour des clés de contact du compte.

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

Insère un lot de clés de contact de compte.

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

Insère une nouvelle entrée dans la table des clés de contact pour le chiffrement de bout en bout ou met à jour une entrée si elle existe déjà.

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

Insère une nouvelle entrée dans la table des clés de contact pour le chiffrement de bout en bout ou met à jour une entrée si elle existe déjà.

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

Insère une nouvelle entrée dans la table des clés auto-chiffrées de bout en bout ou en met à jour une si elle existe déjà.

Fonctions publiques

getAccountContactKeysFlow

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

Renvoie un flux de mises à jour des clés de contact du compte.

Le flux est émis lorsqu'une clé pour un accountId fourni est mise à jour, ajoutée ou supprimée. Elle émettra la liste de toutes les clés pour les accountId fournis, et pas seulement celles qui ont été mises à jour.

Paramètres
accountIds: List<String>

Liste des ID de compte pour lesquels écouter les mises à jour.

Renvoie
Flow<List<E2eeAccountContactKeyParcelable>>

Flux émettant les listes de E2eeAccountContactKeyParcelable pour les accountIds fournis chaque fois qu'une clé est mise à jour, ajoutée ou supprimée.

Génère
com.google.android.libraries.sdkcoroutines.flow.CallbackChannelFullException

si les événements de rappel sont traités trop lentement.

getAllE2eeContactKeys

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

Récupère toutes les entrées de clé de contact de chiffrement de bout en bout appartenant aux applications visibles par l'appelant. Les données deviceId, timeUpdated et keyValue seront supprimées des clés.

Paramètres
lookupKey: String

la valeur qui fait référence au contact.

Renvoie
Task<E2eeContactKeyListParcelable>

E2eeContactKeyListParcelable contenant une liste des informations de clé de contact pour le chiffrement de bout en bout, ou une liste vide si aucune clé n'est trouvée.

getAllE2eeSelfKeys

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

Renvoie toutes les entrées de clé auto-chiffrée de bout en bout appartenant aux applications visibles par l'appelant. Les données deviceId, timeUpdated et keyValue seront supprimées des clés.

Renvoie
Task<E2eeSelfKeyListParcelable>

E2eeSelfKeyListParcelable contenant une liste d'informations sur les clés de chiffrement de bout en bout, ou une liste vide si aucune clé n'est trouvée.

getAllOwnerE2eeAccountContactKeys

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

Récupère toutes les clés de contact de compte de chiffrement de bout en bout appartenant à l'application d'appel, qu'elles soient associées ou non à un contact.

Renvoie
Task<ImmutableList<E2eeAccountContactKeyParcelable>>

Liste d'objets E2eeAccountContactKeyParcelable contenant les informations de clé de contact pour le chiffrement de bout en bout, ou liste vide si aucune clé n'est trouvée.

getAllOwnerE2eeContactKeys

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

Récupère toutes les clés de contact de chiffrement de bout en bout appartenant à l'application appelante, pour tous les contacts.

Cette méthode ne doit être utilisée que pour récupérer les clés auxquelles au moins un contact est associé. Si vous devez récupérer des clés qui ne sont associées à aucun contact, utilisez plutôt getAllOwnerE2eeAccountContactKeys.

Renvoie
Task<E2eeContactKeyListParcelable>

E2eeContactKeyListParcelable contenant une liste des informations de clé de contact pour le chiffrement de bout en bout, ou une liste vide si aucune clé n'est trouvée.

getE2eeAccountKeysForAccount

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

Récupère toutes les entrées de clé de contact de chiffrement de bout en bout qui appartiennent à l'application appelante et au compte de l'appelant, pour tous les contacts. Inclut les clés non associées à un contact.

Renvoie
Task<ImmutableList<E2eeAccountContactKeyParcelable>>

Liste d'objets E2eeAccountContactKeyParcelable contenant les informations de clé de contact pour le chiffrement de bout en bout, ou liste vide si aucune clé n'est trouvée.

getE2eeContactKey

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

Récupère une entrée de clé de contact de chiffrement de bout en bout en fonction de lookupKey, deviceId, accountId et du nom du package de l'appelant inféré.

Paramètres
lookupKey: String

la valeur qui fait référence au contact.

deviceId: String

un identifiant de l'appareil spécifié par l'application.

accountId: String

un identifiant spécifié par l'application pour le compte.

Renvoie
Task<E2eeContactKeyParcelable?>

E2eeContactKeyParcelable contenant les informations de la clé de contact, ou null si aucune clé de contact n'est trouvée.

getE2eeSelfKey

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

Renvoie une entrée de clé auto-chiffrée de bout en bout en fonction de deviceId, accountId et du nom de package inféré de l'appelant.

Paramètres
deviceId: String

un identifiant de l'appareil spécifié par l'application.

accountId: String

un identifiant spécifié par l'application pour le compte.

Renvoie
Task<E2eeSelfKeyParcelable?>

E2eeSelfKeyParcelable contenant les informations de la clé auto-chiffrée de bout en bout, ou null si aucune clé auto-chiffrée n'est trouvée.

getMaxKeySizeBytes

fun getMaxKeySizeBytes(): Task<Int>

Renvoie la taille maximale autorisée d'une clé en octets.

getOnboardingIntent

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

Renvoie une intention d'afficher l'activité d'intégration et indique que l'intégration a été affichée sur cet appareil. Cela nécessite un nextActivity, qui peut être la chaîne show ou scan. Si la valeur est scan, le lookupKey du contact à rechercher est obligatoire.

Paramètres
nextActivity: OnboardingNextActivity

l'activité suivante à afficher après l'activité d'intégration. La valeur doit être définie sur show ou scan.

lookupKey: String?

Valeur qui fait référence au contact. Obligatoire si nextActivity est défini sur scan.

packageName: String?

Nom du package associé à l'application dont les clés sont nécessaires (facultatif).

getOwnerE2eeContactKeys

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

Récupère toutes les entrées de clé de contact de chiffrement de bout en bout pour un lookupKey donné appartenant à l'application appelante.

Paramètres
lookupKey: String

la valeur qui fait référence au contact.

Renvoie
Task<E2eeContactKeyListParcelable>

E2eeContactKeyListParcelable contenant une liste des informations sur les clés de contact pour le chiffrement de bout en bout, ou une liste vide si aucune clé n'est trouvée.

getOwnerE2eeSelfKeys

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

Renvoie toutes les entrées de clé de chiffrement de bout en bout appartenant à l'application appelante.

Renvoie
Task<E2eeSelfKeyListParcelable>

E2eeSelfKeyListParcelable contenant les informations de la clé privée de chiffrement de bout en bout, ou une liste vide si aucune clé privée n'est trouvée.

getScanQrCodeIntent

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

Renvoie un intent à l'activité "Scan QR Code".

Paramètres
lookupKey: String

la valeur qui fait référence au contact.

skipOnboarding: Boolean = false

Actuellement inutilisé.

getScanQrCodeIntentForAccount

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

Renvoie un intent à l'activité "Scanner le code QR" pour un compte spécifique.

Paramètres
packageName: String

le nom du package associé au compte que l'utilisateur souhaite valider.

accountId: String

ID du compte que l'utilisateur souhaite valider

getShowQrCodeIntent

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

Renvoie un intent à l'activité "Afficher le code QR".

Paramètres
packageName: String?

Nom du package associé à l'application dont les clés sont nécessaires (facultatif)

skipOnboarding: Boolean = false

Actuellement inutilisé.

isEnabled

fun isEnabled(): Task<Boolean>

Renvoie une tâche qui se termine correctement, que l'API soit disponible ou non.

Si l'API est disponible, la tâche renvoyée aura un résultat "true", sinon "false".

Les exceptions généralement générées lorsque l'API n'est pas disponible seront interceptées et une tâche renvoyant la valeur "false" sera renvoyée à la place.

registerAccountContactKeysListener

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

Enregistre un écouteur pour les mises à jour des clés de contact du compte.

L'écouteur sera appelé lorsqu'une clé pour un accountId fourni est mise à jour, ajoutée ou supprimée. Elle sera appelée avec la liste de toutes les clés pour les accountIds fournis, et pas seulement celles qui ont été mises à jour.

Paramètres
accountIds: List<String>

Liste des ID de compte pour lesquels enregistrer l'écouteur.

listener: OnAccountContactKeysUpdatedListener

l'écouteur à enregistrer.

removeE2eeAccountContactKey

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

Supprime une entrée de clé de contact de compte de chiffrement de bout en bout appartenant à l'application appelante.

Paramètres
deviceId: String

un identifiant de l'appareil spécifié par l'application.

accountId: String

un identifiant spécifié par l'application pour le compte.

removeE2eeContactKey

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

Supprime une entrée de clé de contact de chiffrement de bout en bout appartenant à l'application appelante.

Paramètres
lookupKey: String

la valeur qui fait référence au contact.

deviceId: String

un identifiant de l'appareil spécifié par l'application.

accountId: String

un identifiant spécifié par l'application pour le compte.

removeE2eeSelfKey

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

Supprime une entrée de clé auto-chiffrée de bout en bout en fonction de l'ID de l'appareil et du nom de package inféré de l'appelant.

Paramètres
deviceId: String

un identifiant de l'appareil spécifié par l'application.

accountId: String

un identifiant spécifié par l'application pour le compte.

unregisterAccountContactKeysListener

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

Désenregistre un écouteur pour les mises à jour des clés de contact du compte.

Paramètres
listener: OnAccountContactKeysUpdatedListener

Paramètre "Listener" dont l'enregistrement doit être annulé

updateAllE2eeAccountKeys

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

Insère un lot de clés de contact de compte.

Se comporte de la même manière que updateOrInsertE2eeContactKey, mais permet d'insérer/mettre à jour plusieurs clés à la fois. Chaque clé est insérée dans sa propre transaction. Il est donc possible que certaines clés soient insérées même si la tâche génère une exception.

Les clients peuvent choisir de gérer les échecs temporaires en renvoyant l'intégralité du lot, car cette API n'affectera pas l'état des clés déjà insérées.

Pour chaque clé, si une lookupKey est fournie, mais que les informations de base du contact (displayName, phoneNumber, emailAddress) ne le sont pas, cette API tentera également de récupérer le nom, le numéro de téléphone et l'adresse e-mail du contact auprès du fournisseur de contacts. Lors de la récupération de la clé, les applications de gestion des contacts doivent utiliser ces informations pour s'assurer que la clé n'est utilisée que pour le contact auquel elle est destinée.

L'application Android Key Verification stocke ces informations sur l'appareil et ne les expose qu'aux appelants d'API disposant de l'autorisation READ_CONTACTS.

Si aucune lookupKey n'est fournie pour une clé, cette API stocke une clé qui n'est associée à aucun contact.

Paramètres
accountKeyInfos: List<E2eeAccountKeyInfo>

Liste des objets E2eeAccountKeyInfo contenant les informations sur la clé de contact pour le chiffrement de bout en bout.

updateOrInsertE2eeContactKey

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

Insère une nouvelle entrée dans la table des clés de contact pour le chiffrement de bout en bout ou met à jour une entrée si elle existe déjà. La clé de contact de chiffrement de bout en bout insérée/mise à jour appartient à l'application appelante.

Cette API stockera également le nom, le numéro de téléphone et l'adresse e-mail du contact à partir du fournisseur de contacts, en plus de la clé. Lors de la récupération de la clé, les applications de gestion des contacts doivent utiliser ces informations pour s'assurer que la clé n'est utilisée que pour le contact auquel elle est destinée.

L'application Android Key Verification stocke ces informations sur l'appareil et ne les expose qu'aux appelants d'API disposant de l'autorisation READ_CONTACTS.

Paramètres
lookupKey: String

valeur qui fait référence au contact.

deviceId: String

un identifiant de l'appareil spécifié par l'application.

accountId: String

un identifiant spécifié par l'application pour le compte.

keyValue: ByteArray

Octets bruts de la clé (taille maximale : getMaxKeySizeBytes octets)

updateOrInsertE2eeContactKey

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

Insère une nouvelle entrée dans la table des clés de contact pour le chiffrement de bout en bout ou met à jour une entrée si elle existe déjà. La clé de contact de chiffrement de bout en bout insérée/mise à jour appartient à l'application appelante.

Pour chaque clé de recherche fournie, cette API stocke également le nom, le numéro de téléphone et l'adresse e-mail du contact à partir du fournisseur de contacts, en plus de la clé. Lors de la récupération de la clé, les applications de gestion des contacts doivent utiliser ces informations pour s'assurer que la clé n'est utilisée que pour le contact auquel elle est destinée.

L'application Android Key Verification stocke ces informations sur l'appareil et ne les expose qu'aux appelants d'API disposant de l'autorisation READ_CONTACTS.

Si la liste des clés de recherche est vide, cette API stocke une clé qui n'est associée à aucun contact.

Si vous appelez cette API avec une ou plusieurs clés de recherche, les métadonnées de la clé seront mises à jour pour l'associer aux contacts fournis. Toutefois, les associations existantes pour les contacts qui ne figurent pas dans la liste ne seront pas supprimées. Pour supprimer l'association entre un contact et une clé, appelez removeE2eeContactKey avec la clé de recherche appropriée.

Paramètres
lookupKeys: List<String>

Liste potentiellement vide de clés de recherche CP2 faisant référence aux contacts auxquels la clé est associée

deviceId: String

un identifiant de l'appareil spécifié par l'application.

accountId: String

un identifiant spécifié par l'application pour le compte.

keyValue: ByteArray

Octets bruts de la clé (taille maximale : getMaxKeySizeBytes octets)

updateOrInsertE2eeSelfKey

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

Insère une nouvelle entrée dans la table des clés auto-chiffrées de bout en bout ou en met à jour une si elle existe déjà.

Paramètres
deviceId: String

un identifiant de l'appareil spécifié par l'application.

accountId: String

un identifiant spécifié par l'application pour le compte.

keyValue: ByteArray

Octets bruts de la clé (taille maximale : getMaxKeySizeBytes octets)