ContactKeyClient


interface ContactKeyClient : HasApiKey


Клиент для API контактных ключей.

Краткое содержание

Общественные функции

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

Возвращает поток обновлений ключей контактов учетной записи.

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

Извлекает все записи ключей сквозного шифрования контактов, принадлежащие приложениям, видимым вызывающему абоненту.

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

Возвращает все записи самоключа сквозного шифрования, принадлежащие приложениям, видимым вызывающей стороне.

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

Получает все ключи сквозного шифрования контактов, принадлежащие приложению вызывающего абонента, независимо от того, связаны они с контактом или нет.

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

Получает все ключи сквозного шифрования контактов, принадлежащие приложению звонящего, для всех контактов.

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

Получает все записи ключей сквозного шифрования контактов, относящиеся к приложению звонящего и учетной записи звонящего, по всем контактам.

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

Получает запись ключа сквозного шифрования контакта, используя параметры lookupKey , deviceId , accountId и предполагаемое имя пакета вызывающего абонента.

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

Возвращает запись самоключа сквозного шифрования, используя deviceId , accountId и предполагаемое имя пакета вызывающего абонента.

Task < Int >

Возвращает максимально допустимый размер ключа в байтах.

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

Возвращает объект Intent для отображения процесса адаптации и помечает, что процесс адаптации был показан на этом устройстве.

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

Извлекает все записи ключей сквозного шифрования контактов для заданного параметра lookupKey , принадлежащие приложению вызывающего абонента.

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

Возвращает все записи самоключа сквозного шифрования, принадлежащие вызывающему приложению.

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

Возвращает Intent для действия "Сканировать QR-код".

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

Возвращает намерение для действия "Сканировать QR-код" для конкретной учетной записи.

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

Возвращает Intent для действия "Показать QR-код".

Task < Boolean >

Возвращает задачу, которая успешно завершается независимо от того, доступен API или нет.

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

Регистрирует обработчик обновлений ключей контактов учетной записи.

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

Удаляет запись ключа контакта учетной записи сквозного шифрования, принадлежащую приложению вызывающего абонента.

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

Удаляет запись ключа сквозного шифрования контакта, принадлежащую приложению вызывающего абонента.

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

Удаляет запись самоключа сквозного шифрования, используя идентификатор устройства (deviceId) и предполагаемое имя пакета вызывающего абонента.

Task < Boolean >

Отменяет регистрацию обработчика обновлений ключей контактов учетной записи.

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

Вставляет пакет ключей контактов учетной записи.

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

Вставляет новую запись в таблицу ключей сквозного шифрования или обновляет существующую, если она уже есть.

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

Вставляет новую запись в таблицу ключей сквозного шифрования или обновляет существующую, если она уже есть.

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

Вставляет новую запись в таблицу самоключа сквозного шифрования или обновляет существующую, если она уже есть.

Общественные функции

getAccountContactKeysFlow

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

Возвращает поток обновлений ключей контактов учетной записи.

Данный алгоритм будет запускаться при обновлении, добавлении или удалении любого ключа для любого предоставленного accountId. Он выведет список всех ключей для предоставленных accountId, а не только тех, которые были обновлены.

Параметры
accountIds: List < String >

Список идентификаторов учетных записей, для которых следует отслеживать обновления.

Возвраты
Flow < List < E2eeAccountContactKeyParcelable >>

Поток, генерирующий списки объектов E2eeAccountContactKeyParcelable для предоставленных accountIds всякий раз, когда какой-либо ключ обновляется, добавляется или удаляется.

Броски
com.google.android.libraries.sdkcoroutines.flow.CallbackChannelFullException

если события обратного вызова обрабатываются слишком медленно.

getAllE2eeContactKeys

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

Получает все записи ключей сквозного шифрования контактов, принадлежащие приложениям, видимым вызывающему абоненту. Из ключей будут удалены данные deviceId , timeUpdated и keyValue .

Параметры
lookupKey: String

значение, которое ссылается на контакт

Возвраты
Task < E2eeContactKeyListParcelable >

Объект E2eeContactKeyListParcelable содержащий список информации о ключах сквозного шифрования контактов, или пустой список, если ключи не найдены.

getAllE2eeSelfKeys

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

Возвращает все записи самоключа сквозного шифрования, принадлежащие приложениям, видимым вызывающей стороне. Из ключей будут удалены данные deviceId , timeUpdated и keyValue .

Возвраты
Task < E2eeSelfKeyListParcelable >

Объект E2eeSelfKeyListParcelable содержащий список информации о ключах самошифрования для сквозного шифрования, или пустой список, если ключи самошифрования не найдены.

getAllOwnerE2eeAccountContactKeys

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

Получает все ключи сквозного шифрования контактов, принадлежащие приложению вызывающего абонента, независимо от того, связаны они с контактом или нет.

Возвраты
Task < ImmutableList < E2eeAccountContactKeyParcelable >>

Список объектов E2eeAccountContactKeyParcelable , содержащих информацию о ключе сквозного шифрования для контакта, или пустой список, если ключи не найдены.

getAllOwnerE2eeContactKeys

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

Получает все ключи сквозного шифрования контактов, принадлежащие приложению звонящего, для всех контактов.

Этот метод следует использовать только для получения ключей, с которыми связан хотя бы один контакт. Если вам необходимо получить ключи, не связанные ни с одним контактом, используйте вместо этого getAllOwnerE2eeAccountContactKeys .

Возвраты
Task < E2eeContactKeyListParcelable >

Объект E2eeContactKeyListParcelable содержащий список информации о ключах сквозного шифрования контактов, или пустой список, если ключи не найдены.

getE2eeAccountKeysForAccount

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

Извлекает все записи ключей сквозного шифрования контактов, относящиеся к приложению звонящего и учетной записи звонящего, по всем контактам. Включает ключи, не связанные ни с одним контактом.

Возвраты
Task < ImmutableList < E2eeAccountContactKeyParcelable >>

Список объектов E2eeAccountContactKeyParcelable , содержащих информацию о ключе сквозного шифрования для контакта, или пустой список, если ключи не найдены.

getE2eeContactKey

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

Получает запись ключа сквозного шифрования контакта, используя параметры lookupKey , deviceId , accountId и предполагаемое имя пакета вызывающего абонента.

Параметры
lookupKey: String

значение, которое ссылается на контакт

deviceId: String

идентификатор устройства, заданный приложением.

accountId: String

идентификатор учетной записи, указанный в приложении.

Возвраты
Task < E2eeContactKeyParcelable ?>

Объект E2eeContactKeyParcelable , содержащий информацию о ключе контакта, или null, если ключ контакта не найден.

getE2eeSelfKey

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

Возвращает запись самоключа сквозного шифрования, используя deviceId , accountId и предполагаемое имя пакета вызывающего абонента.

Параметры
deviceId: String

идентификатор устройства, заданный приложением.

accountId: String

идентификатор учетной записи, указанный в приложении.

Возвраты
Task < E2eeSelfKeyParcelable ?>

Объект E2eeSelfKeyParcelable содержащий информацию о собственном ключе сквозного шифрования, или null, если собственный ключ не найден.

getMaxKeySizeBytes

fun getMaxKeySizeBytes(): Task<Int>

Возвращает максимально допустимый размер ключа в байтах.

getOnboardingIntent

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

Возвращает намерение для отображения активности адаптации и отмечает, что адаптация была показана на этом устройстве. Для этого требуется nextActivity , которое может быть либо строкой show , либо scan . Если scan , требуется lookupKey контакта, который нужно найти.

Параметры
nextActivity: OnboardingNextActivity

Следующее действие, которое отображается после этапа адаптации. Должно быть либо show , либо scan .

lookupKey: String ?

Значение, ссылающееся на контакт. Обязательно, если nextActivity равно scan .

packageName: String ?

Имя пакета, связанного с приложением, для которого требуются ключи (необязательно).

getOwnerE2eeContactKeys

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

Извлекает все записи ключей сквозного шифрования контактов для заданного параметра lookupKey , принадлежащие приложению вызывающего абонента.

Параметры
lookupKey: String

значение, которое ссылается на контакт

Возвраты
Task < E2eeContactKeyListParcelable >

Объект E2eeContactKeyListParcelable содержащий список информации о ключах сквозного шифрования контактов, или пустой список, если ключи не найдены.

getOwnerE2eeSelfKeys

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

Возвращает все записи самоключа сквозного шифрования, принадлежащие вызывающему приложению.

Возвраты
Task < E2eeSelfKeyListParcelable >

Объект E2eeSelfKeyListParcelable содержащий информацию о ключе самошифрования для сквозного шифрования, или пустой список, если ключи самошифрования не найдены.

getScanQrCodeIntent

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

Возвращает Intent для действия "Сканировать QR-код".

Параметры
lookupKey: String

значение, которое ссылается на контакт

skipOnboarding: Boolean = false

В настоящее время не используется.

getScanQrCodeIntentForAccount

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

Возвращает намерение для действия "Сканировать QR-код" для конкретной учетной записи.

Параметры
packageName: String

название пакета, связанного с учетной записью, которую пользователь желает подтвердить.

accountId: String

Идентификатор учетной записи, связанной с учетной записью, которую пользователь желает подтвердить.

getShowQrCodeIntent

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

Возвращает Intent для действия "Показать QR-код".

Параметры
packageName: String ?

Название пакета, связанного с приложением, для которого требуются ключи (необязательно)

skipOnboarding: Boolean = false

В настоящее время не используется.

включено

fun isEnabled(): Task<Boolean>

Возвращает задачу, которая успешно завершается независимо от того, доступен API или нет.

Если API доступен, возвращаемая задача будет иметь результат true, в противном случае — false.

Исключения, обычно возникающие при недоступности API, будут перехвачены, и вместо этого будет возвращена задача, успешно вернувшая значение false.

registerAccountContactKeysListener

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

Регистрирует обработчик обновлений ключей контактов учетной записи.

Обработчик событий будет вызываться при обновлении, добавлении или удалении любого ключа для любого предоставленного accountId. Он будет вызываться со списком всех ключей для предоставленных accountId, а не только тех, которые были обновлены.

Параметры
accountIds: List < String >

Список идентификаторов учетных записей, для которых необходимо зарегистрировать слушатель.

listener: OnAccountContactKeysUpdatedListener

слушатель должен зарегистрироваться.

removeE2eeAccountContactKey

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

Удаляет запись ключа контакта учетной записи сквозного шифрования, принадлежащую приложению вызывающего абонента.

Параметры
deviceId: String

идентификатор устройства, заданный приложением.

accountId: String

идентификатор учетной записи, указанный в приложении.

removeE2eeContactKey

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

Удаляет запись ключа сквозного шифрования контакта, принадлежащую приложению вызывающего абонента.

Параметры
lookupKey: String

значение, которое ссылается на контакт

deviceId: String

идентификатор устройства, заданный приложением.

accountId: String

идентификатор учетной записи, указанный в приложении.

removeE2eeSelfKey

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

Удаляет запись самоключа сквозного шифрования, используя идентификатор устройства (deviceId) и предполагаемое имя пакета вызывающего абонента.

Параметры
deviceId: String

идентификатор устройства, заданный приложением.

accountId: String

идентификатор учетной записи, указанный в приложении.

unregisterAccountContactKeysListener

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

Отменяет регистрацию обработчика обновлений ключей контактов учетной записи.

Параметры
listener: OnAccountContactKeysUpdatedListener

слушатель, которому необходимо отменить регистрацию.

updateAllE2eeAccountKeys

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

Вставляет пакет ключей контактов учетной записи.

Работает аналогично updateOrInsertE2eeContactKey , но позволяет одновременно вставлять/обновлять несколько ключей. Каждый ключ вставляется в отдельной транзакции, поэтому некоторые ключи могут быть вставлены, даже если задача вызовет исключение.

Клиенты могут по своему усмотрению обрабатывать временные сбои, повторно отправляя весь пакет, поскольку этот API не повлияет на состояние уже вставленных ключей.

Для каждого ключа, если указан lookupKey, но отсутствуют основные данные контакта (displayName, phoneNumber, emailAddress), этот API также попытается получить имя, номер телефона и адрес электронной почты контакта из Contacts Provider. При получении ключа приложения для управления контактами должны использовать эту информацию, чтобы убедиться, что ключ используется только для того контакта, для которого он был предназначен.

Приложение Android Key Verification хранит эту информацию на устройстве и предоставляет к ней доступ только тем пользователям API, которые имеют разрешение READ_CONTACTS .

Если для ключа не указан lookupKey, этот API сохранит ключ, не связанный ни с одним контактом.

Параметры
accountKeyInfos: List < E2eeAccountKeyInfo >

Список объектов E2eeAccountKeyInfo , содержащих информацию о ключе контакта для сквозного шифрования.

updateOrInsertE2eeContactKey

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

Добавляет новую запись в таблицу ключей сквозного шифрования контактов или обновляет существующую, если она уже есть. Вставленный/обновленный ключ сквозного шифрования контактов принадлежит приложению вызывающего абонента.

Этот API также будет хранить имя контакта, номер телефона и адрес электронной почты из поставщика контактов, а также ключ. При получении ключа приложения для управления контактами должны использовать эту информацию, чтобы убедиться, что ключ используется только для того контакта, для которого он был предназначен.

Приложение Android Key Verification хранит эту информацию на устройстве и предоставляет к ней доступ только тем пользователям API, которые имеют разрешение READ_CONTACTS .

Параметры
lookupKey: String

значение, которое ссылается на контакт

deviceId: String

идентификатор устройства, заданный приложением.

accountId: String

идентификатор учетной записи, указанный в приложении.

keyValue: ByteArray

Исходные байты для ключа (максимальный размер равен getMaxKeySizeBytes в байтах)

updateOrInsertE2eeContactKey

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

Добавляет новую запись в таблицу ключей сквозного шифрования контактов или обновляет существующую, если она уже есть. Вставленный/обновленный ключ сквозного шифрования контактов принадлежит приложению вызывающего абонента.

Для каждого предоставленного ключа поиска этот API также будет сохранять имя контакта, номер телефона и адрес электронной почты из поставщика контактов вместе с ключом. При получении ключа приложения для управления контактами должны использовать эту информацию, чтобы убедиться, что ключ используется только для того контакта, для которого он был предназначен.

Приложение Android Key Verification хранит эту информацию на устройстве и предоставляет к ней доступ только тем пользователям API, которые имеют разрешение READ_CONTACTS .

Если список ключей поиска пуст, этот API сохранит ключ, не связанный ни с одним контактом.

Вызов этого API с одним или несколькими ключами поиска обновит метаданные ключа, связав его с указанными контактами, но не удалит существующие связи для контактов, не указанных в списке. Чтобы удалить связь между контактом и ключом, вызовите метод removeE2eeContactKey с соответствующим ключом поиска.

Параметры
lookupKeys: List < String >

потенциально пустой список ключей поиска CP2, ссылающихся на контакты, с которыми связан данный ключ.

deviceId: String

идентификатор устройства, заданный приложением.

accountId: String

идентификатор учетной записи, указанный в приложении.

keyValue: ByteArray

Исходные байты для ключа (максимальный размер равен getMaxKeySizeBytes в байтах)

updateOrInsertE2eeSelfKey

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

Вставляет новую запись в таблицу самоключа сквозного шифрования или обновляет существующую, если она уже есть.

Параметры
deviceId: String

идентификатор устройства, заданный приложением.

accountId: String

идентификатор учетной записи, указанный в приложении.

keyValue: ByteArray

Исходные байты для ключа (максимальный размер равен getMaxKeySizeBytes в байтах)