ContactKeyClient


interface ContactKeyClient : HasApiKey


Un client per l'API Contact Key.

Riepilogo

Funzioni pubbliche

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

Restituisce un flusso di aggiornamenti delle chiavi di contatto dell'account.

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

Recupera tutte le voci della chiave di contatto con crittografia end-to-end appartenenti alle app visibili al chiamante.

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

Restituisce tutte le voci della chiave automatica di crittografia end-to-end appartenenti ad app visibili al chiamante.

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

Recupera tutte le chiavi di contatto dell'account con crittografia end-to-end appartenenti all'app chiamante, indipendentemente dal fatto che siano associate o meno a un contatto.

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

Recupera tutte le chiavi di contatto con crittografia end-to-end appartenenti all'app chiamante, per tutti i contatti.

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

Recupera tutte le voci della chiave di contatto con crittografia end-to-end appartenenti all'app chiamante e all'account del chiamante, per tutti i contatti.

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

Recupera una voce della chiave di contatto con crittografia end-to-end dato il lookupKey, il deviceId, il accountId e il nome del pacchetto del chiamante dedotto.

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

Restituisce una voce di chiave automatica di crittografia end-to-end dato deviceId, accountId e il nome del pacchetto dedotto del chiamante.

Task<Int>

Restituisce la dimensione massima consentita di una chiave in byte.

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

Restituisce un intent per mostrare l'attività di onboarding e indica che l'onboarding è stato mostrato su questo dispositivo.

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

Recupera tutte le voci della chiave di contatto con crittografia end-to-end per un determinato lookupKey appartenente all'app chiamante.

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

Restituisce tutte le voci della chiave automatica di crittografia end-to-end di proprietà dell'app chiamante.

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

Restituisce un intent all'attività "Scansiona codice QR".

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

Restituisce un intent all'attività "Scansiona codice QR" per un account specifico.

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

Restituisce un intent all'attività "Mostra codice QR".

Task<Boolean>

Restituisce un'attività che viene completata correttamente indipendentemente dalla disponibilità dell'API.

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

Registra un listener per gli aggiornamenti delle chiavi di contatto dell'account.

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

Rimuove una voce della chiave di contatto dell'account con crittografia end-to-end appartenente all'app chiamante.

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

Rimuove una voce della chiave di contatto con crittografia end-to-end appartenente all'app chiamante.

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

Rimuove una voce della chiave automatica di crittografia end-to-end dato il deviceId e il nome del pacchetto dedotto del chiamante.

Task<Boolean>

Annulla la registrazione di un listener per gli aggiornamenti delle chiavi di contatto dell'account.

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

Inserisce un batch di chiavi di contatto dell'account.

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

Inserisce una nuova voce nella tabella delle chiavi di contatto per la crittografia end-to-end o ne aggiorna una se esiste già.

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

Inserisce una nuova voce nella tabella delle chiavi di contatto per la crittografia end-to-end o ne aggiorna una se esiste già.

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

Inserisce una nuova voce nella tabella delle chiavi self-service per la crittografia end-to-end o ne aggiorna una se esiste già.

Funzioni pubbliche

getAccountContactKeysFlow

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

Restituisce un flusso di aggiornamenti delle chiavi di contatto dell'account.

Il flusso viene emesso quando una chiave per un accountId fornito viene aggiornata, aggiunta o rimossa. Verrà emesso l'elenco di tutte le chiavi per gli account ID forniti, non solo di quelle aggiornate.

Parametri
accountIds: List<String>

l'elenco degli ID account per cui ascoltare gli aggiornamenti.

Ritorni
Flow<List<E2eeAccountContactKeyParcelable>>

un flusso che emette gli elenchi di E2eeAccountContactKeyParcelable per gli accountIds forniti ogni volta che una chiave viene aggiornata, aggiunta o rimossa.

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

se gli eventi di callback vengono elaborati troppo lentamente.

getAllE2eeContactKeys

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

Recupera tutte le voci della chiave di contatto con crittografia end-to-end appartenenti alle app visibili al chiamante. Le chiavi verranno private dei dati deviceId, timeUpdated e keyValue.

Parametri
lookupKey: String

il valore che fa riferimento al contatto

Ritorni
Task<E2eeContactKeyListParcelable>

un E2eeContactKeyListParcelable contenente un elenco delle informazioni sulla chiave di contatto per la crittografia end-to-end o un elenco vuoto se non vengono trovate chiavi.

getAllE2eeSelfKeys

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

Restituisce tutte le voci della chiave automatica di crittografia end-to-end appartenenti ad app visibili al chiamante. Le chiavi verranno private dei dati deviceId, timeUpdated e keyValue.

Ritorni
Task<E2eeSelfKeyListParcelable>

un E2eeSelfKeyListParcelable contenente un elenco delle informazioni sulla chiave automatica di crittografia end-to-end o un elenco vuoto se non vengono trovate chiavi automatiche.

getAllOwnerE2eeAccountContactKeys

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

Recupera tutte le chiavi di contatto dell'account con crittografia end-to-end appartenenti all'app chiamante, indipendentemente dal fatto che siano associate o meno a un contatto.

Ritorni
Task<ImmutableList<E2eeAccountContactKeyParcelable>>

Un elenco di oggetti E2eeAccountContactKeyParcelable contenenti le informazioni sulla chiave di contatto per la crittografia end-to-end o un elenco vuoto se non vengono trovate chiavi.

getAllOwnerE2eeContactKeys

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

Recupera tutte le chiavi di contatto con crittografia end-to-end appartenenti all'app chiamante, per tutti i contatti.

Questo metodo deve essere utilizzato solo per recuperare le chiavi a cui è associato almeno un contatto. Se devi recuperare chiavi non associate ad alcun contatto, utilizza getAllOwnerE2eeAccountContactKeys.

Ritorni
Task<E2eeContactKeyListParcelable>

un E2eeContactKeyListParcelable contenente un elenco delle informazioni sulla chiave di contatto per la crittografia end-to-end o un elenco vuoto se non vengono trovate chiavi.

getE2eeAccountKeysForAccount

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

Recupera tutte le voci della chiave di contatto con crittografia end-to-end appartenenti all'app chiamante e all'account del chiamante, per tutti i contatti. Include le chiavi non associate ad alcun contatto.

Ritorni
Task<ImmutableList<E2eeAccountContactKeyParcelable>>

Un elenco di oggetti E2eeAccountContactKeyParcelable contenenti le informazioni sulla chiave di contatto per la crittografia end-to-end o un elenco vuoto se non vengono trovate chiavi.

getE2eeContactKey

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

Recupera una voce della chiave di contatto con crittografia end-to-end dato il lookupKey, il deviceId, il accountId e il nome del pacchetto del chiamante dedotto.

Parametri
lookupKey: String

il valore che fa riferimento al contatto

deviceId: String

un identificatore specificato dall'app per il dispositivo

accountId: String

un identificatore specificato dall'app per l'account

Ritorni
Task<E2eeContactKeyParcelable?>

un E2eeContactKeyParcelable contenente le informazioni chiave del contatto o null se non viene trovata alcuna chiave del contatto.

getE2eeSelfKey

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

Restituisce una voce di chiave automatica di crittografia end-to-end dato deviceId, accountId e il nome del pacchetto dedotto del chiamante.

Parametri
deviceId: String

un identificatore specificato dall'app per il dispositivo

accountId: String

un identificatore specificato dall'app per l'account

Ritorni
Task<E2eeSelfKeyParcelable?>

un E2eeSelfKeyParcelable contenente le informazioni sulla chiave automatica di crittografia end-to-end o null se non viene trovata alcuna chiave automatica.

getMaxKeySizeBytes

fun getMaxKeySizeBytes(): Task<Int>

Restituisce la dimensione massima consentita di una chiave in byte.

getOnboardingIntent

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

Restituisce un intent per mostrare l'attività di onboarding e indica che l'onboarding è stato mostrato su questo dispositivo. Ciò richiede un nextActivity, che può essere la stringa show o scan. Se scan, è necessario l'lookupKey del contatto da cercare.

Parametri
nextActivity: OnboardingNextActivity

l'attività successiva da mostrare dopo l'attività di onboarding. Deve essere show o scan.

lookupKey: String?

il valore che fa riferimento al contatto. Obbligatorio se nextActivity è scan.

packageName: String?

il nome del pacchetto associato all'app di cui sono necessarie le chiavi (facoltativo).

getOwnerE2eeContactKeys

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

Recupera tutte le voci della chiave di contatto con crittografia end-to-end per un determinato lookupKey appartenente all'app chiamante.

Parametri
lookupKey: String

il valore che fa riferimento al contatto

Ritorni
Task<E2eeContactKeyListParcelable>

un E2eeContactKeyListParcelable contenente un elenco delle informazioni sulla chiave di contatto per la crittografia end-to-end o un elenco vuoto se non vengono trovate chiavi.

getOwnerE2eeSelfKeys

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

Restituisce tutte le voci della chiave automatica di crittografia end-to-end di proprietà dell'app chiamante.

Ritorni
Task<E2eeSelfKeyListParcelable>

un E2eeSelfKeyListParcelable contenente le informazioni sulla chiave automatica di crittografia end-to-end o un elenco vuoto se non vengono trovate chiavi automatiche.

getScanQrCodeIntent

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

Restituisce un intent all'attività "Scansiona codice QR".

Parametri
lookupKey: String

il valore che fa riferimento al contatto

skipOnboarding: Boolean = false

Attualmente non utilizzato.

getScanQrCodeIntentForAccount

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

Restituisce un intent all'attività "Scansiona codice QR" per un account specifico.

Parametri
packageName: String

il nome del pacchetto associato all'account che l'utente vuole verificare

accountId: String

L'ID account associato all'account che l'utente vuole verificare

getShowQrCodeIntent

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

Restituisce un intent all'attività "Mostra codice QR".

Parametri
packageName: String?

(facoltativo) il nome del pacchetto associato all'app di cui sono necessarie le chiavi

skipOnboarding: Boolean = false

Attualmente non utilizzato.

isEnabled

fun isEnabled(): Task<Boolean>

Restituisce un'attività che viene completata correttamente indipendentemente dalla disponibilità dell'API.

Se l'API è disponibile, l'attività restituita avrà un risultato true, altrimenti false.

Le eccezioni in genere generate quando l'API non è disponibile verranno rilevate e verrà restituita un'attività che restituisce correttamente false.

registerAccountContactKeysListener

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

Registra un listener per gli aggiornamenti delle chiavi di contatto dell'account.

Il listener verrà chiamato quando una chiave per qualsiasi accountId fornito viene aggiornata, aggiunta o rimossa. Verrà chiamato con l'elenco di tutte le chiavi per gli accountIds forniti, non solo quelle aggiornate.

Parametri
accountIds: List<String>

l'elenco degli ID account per cui registrare il listener.

listener: OnAccountContactKeysUpdatedListener

l'ascoltatore da registrare.

removeE2eeAccountContactKey

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

Rimuove una voce della chiave di contatto dell'account con crittografia end-to-end appartenente all'app chiamante.

Parametri
deviceId: String

un identificatore specificato dall'app per il dispositivo

accountId: String

un identificatore specificato dall'app per l'account

removeE2eeContactKey

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

Rimuove una voce della chiave di contatto con crittografia end-to-end appartenente all'app chiamante.

Parametri
lookupKey: String

il valore che fa riferimento al contatto

deviceId: String

un identificatore specificato dall'app per il dispositivo

accountId: String

un identificatore specificato dall'app per l'account

removeE2eeSelfKey

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

Rimuove una voce della chiave automatica di crittografia end-to-end dato il deviceId e il nome del pacchetto dedotto del chiamante.

Parametri
deviceId: String

un identificatore specificato dall'app per il dispositivo

accountId: String

un identificatore specificato dall'app per l'account

unregisterAccountContactKeysListener

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

Annulla la registrazione di un listener per gli aggiornamenti delle chiavi di contatto dell'account.

Parametri
listener: OnAccountContactKeysUpdatedListener

l'annullamento della registrazione del listener.

updateAllE2eeAccountKeys

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

Inserisce un batch di chiavi di contatto dell'account.

Si comporta in modo simile a updateOrInsertE2eeContactKey, ma consente di inserire/aggiornare più chiavi contemporaneamente. Ogni chiave viene inserita nella propria transazione, quindi alcune chiavi potrebbero essere inserite anche se l'attività genera un'eccezione.

I client possono scegliere di gestire gli errori temporanei inviando nuovamente l'intero batch, in quanto questa API non influirà sullo stato delle chiavi già inserite.

Per ogni chiave, se viene fornita una lookupKey, ma non le informazioni di base del contatto (displayName, phoneNumber, emailAddress), questa API tenterà anche di recuperare il nome, il numero di telefono e l'indirizzo email del contatto dal provider di contatti. Quando recuperano la chiave, le app di gestione dei contatti devono utilizzare queste informazioni per assicurarsi che la chiave venga utilizzata solo per il contatto a cui è destinata.

L'app Android Key Verification memorizza queste informazioni sul dispositivo e le espone solo ai chiamanti API che dispongono dell'autorizzazione READ_CONTACTS.

Se non viene fornita alcuna lookupKey per una chiave, questa API memorizzerà una chiave non associata ad alcun contatto.

Parametri
accountKeyInfos: List<E2eeAccountKeyInfo>

l'elenco degli oggetti E2eeAccountKeyInfo contenenti le informazioni sulla chiave di contatto per la crittografia end-to-end.

updateOrInsertE2eeContactKey

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

Inserisce una nuova voce nella tabella delle chiavi di contatto per la crittografia end-to-end o ne aggiorna una se esiste già. La chiave di contatto con crittografia end-to-end inserita/aggiornata è di proprietà dell'app chiamante.

Questa API memorizzerà anche il nome, il numero di telefono e l'indirizzo email del contatto dal provider di contatti, insieme alla chiave. Quando recuperano la chiave, le app di gestione dei contatti devono utilizzare queste informazioni per assicurarsi che la chiave venga utilizzata solo per il contatto a cui è destinata.

L'app Android Key Verification memorizza queste informazioni sul dispositivo e le espone solo ai chiamanti API che dispongono dell'autorizzazione READ_CONTACTS.

Parametri
lookupKey: String

valore che fa riferimento al contatto

deviceId: String

un identificatore specificato dall'app per il dispositivo

accountId: String

un identificatore specificato dall'app per l'account

keyValue: ByteArray

i byte non elaborati per la chiave (la dimensione massima è getMaxKeySizeBytes byte)

updateOrInsertE2eeContactKey

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

Inserisce una nuova voce nella tabella delle chiavi di contatto per la crittografia end-to-end o ne aggiorna una se esiste già. La chiave di contatto con crittografia end-to-end inserita/aggiornata è di proprietà dell'app chiamante.

Per ogni chiave di ricerca fornita, questa API memorizzerà anche il nome, il numero di telefono e l'indirizzo email del contatto dal provider di contatti, insieme alla chiave. Quando recuperano la chiave, le app di gestione dei contatti devono utilizzare queste informazioni per assicurarsi che la chiave venga utilizzata solo per il contatto a cui è destinata.

L'app Android Key Verification memorizza queste informazioni sul dispositivo e le espone solo ai chiamanti API che dispongono dell'autorizzazione READ_CONTACTS.

Se l'elenco delle chiavi di ricerca è vuoto, questa API memorizzerà una chiave non associata ad alcun contatto.

La chiamata di questa API con una o più chiavi di ricerca aggiornerà i metadati della chiave per associarla ai contatti forniti, ma non rimuoverà le associazioni esistenti per i contatti non forniti nell'elenco. Per rimuovere un'associazione tra un contatto e una chiave, chiama removeE2eeContactKey con la chiave di ricerca appropriata.

Parametri
lookupKeys: List<String>

elenco potenzialmente vuoto di chiavi di ricerca CP2 che fanno riferimento ai contatti a cui è associata la chiave

deviceId: String

un identificatore specificato dall'app per il dispositivo

accountId: String

un identificatore specificato dall'app per l'account

keyValue: ByteArray

i byte non elaborati per la chiave (la dimensione massima è getMaxKeySizeBytes byte)

updateOrInsertE2eeSelfKey

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

Inserisce una nuova voce nella tabella delle chiavi self-service per la crittografia end-to-end o ne aggiorna una se esiste già.

Parametri
deviceId: String

un identificatore specificato dall'app per il dispositivo

accountId: String

un identificatore specificato dall'app per l'account

keyValue: ByteArray

i byte non elaborati per la chiave (la dimensione massima è getMaxKeySizeBytes byte)