ContactKeyClient


interface ContactKeyClient : HasApiKey


Contact Key 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)

lookupKeydeviceIdaccountId、および推測された発信者パッケージ名が指定されたエンドツーエンド暗号化連絡先キー エントリを取得します。

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

deviceIdaccountId、呼び出し元の推測されたパッケージ名が指定されたエンドツーエンド暗号化の自己鍵エントリを返します。

Task<Int>

キーの最大許容サイズをバイト単位で返します。

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

オンボーディング アクティビティを表示するインテントを返し、このデバイスでオンボーディングが表示されたことをマークします。

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)

[QR コードをスキャン] アクティビティへのインテントを返します。

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

特定のアカウントの [QR コードをスキャン] アクティビティのインテントを返します。

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

[QR コードを表示] アクティビティへのインテントを返します。

Task<Boolean>

API が利用可能かどうかに関係なく、正常に完了する Task を返します。

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>

更新をリッスンするアカウント ID のリスト。

戻り値
Flow<List<E2eeAccountContactKeyParcelable>>

キーが更新、追加、削除されるたびに、指定された accountId の E2eeAccountContactKeyParcelable のリストを返すフロー。

例外
com.google.android.libraries.sdkcoroutines.flow.CallbackChannelFullException

コールバック イベントの処理が遅すぎる場合。

getAllE2eeContactKeys

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

呼び出し元に表示されるアプリに属するすべてのエンドツーエンド暗号化連絡先キー エントリを取得します。キーから deviceIdtimeUpdatedkeyValue のデータが削除されます。

パラメータ
lookupKey: String

連絡先を参照する値

戻り値
Task<E2eeContactKeyListParcelable>

エンドツーエンドの暗号化連絡先キー情報のリストを含む E2eeContactKeyListParcelable。キーが見つからない場合は空のリスト。

getAllE2eeSelfKeys

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

呼び出し元に表示されるアプリに属するすべてのエンドツーエンド暗号化セルフキー エントリを返します。キーから deviceIdtimeUpdatedkeyValue のデータが削除されます。

戻り値
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>

すべての連絡先について、呼び出し元アプリに属するすべてのエンドツーエンド暗号化連絡先キーを取得します。

このメソッドは、少なくとも 1 つの連絡先が関連付けられているキーのみを取得するために使用する必要があります。連絡先に関連付けられていないキーを取得する必要がある場合は、代わりに 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?>

lookupKeydeviceIdaccountId、および推測された発信者パッケージ名が指定されたエンドツーエンド暗号化連絡先キー エントリを取得します。

パラメータ
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?>

deviceIdaccountId、呼び出し元の推測されたパッケージ名が指定されたエンドツーエンド暗号化の自己鍵エントリを返します。

パラメータ
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?

連絡先を参照する値。nextActivityscan の場合は必須です。

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>

[QR コードをスキャン] アクティビティへのインテントを返します。

パラメータ
lookupKey: String

連絡先を参照する値

skipOnboarding: Boolean = false

現在は使用されていません。

getScanQrCodeIntentForAccount

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

特定のアカウントの [QR コードをスキャン] アクティビティのインテントを返します。

パラメータ
packageName: String

ユーザーが確認を希望するアカウントに関連付けられているパッケージ名

accountId: String

ユーザーが確認を希望するアカウントに関連付けられたアカウント ID

getShowQrCodeIntent

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

[QR コードを表示] アクティビティへのインテントを返します。

パラメータ
packageName: String?

鍵が必要なアプリに関連付けられたパッケージ名(省略可)

skipOnboarding: Boolean = false

現在は使用されていません。

isEnabled

fun isEnabled(): Task<Boolean>

API が利用可能かどうかに関係なく、正常に完了する Task を返します。

API が利用可能な場合、返されるタスクの結果は true になり、それ以外の場合は false になります。

通常、API が使用できない場合にスローされる例外がキャッチされ、代わりに false を正常に返すタスクが返されます。

registerAccountContactKeysListener

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

アカウントの連絡先キーの更新のリスナーを登録します。

指定された accountId のキーが更新、追加、削除されると、リスナーが呼び出されます。更新されたキーだけでなく、指定された accountIds のすべてのキーのリストを使用して呼び出されます。

パラメータ
accountIds: List<String>

リスナーを登録するアカウント ID のリスト。

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 は連絡先の名前、電話番号、メールアドレスを連絡先プロバイダから取得しようとします。鍵を取得する際、連絡先管理アプリはこの情報を使用して、鍵が意図した連絡先でのみ使用されるようにする必要があります。

Android キー検証アプリはこの情報をデバイスに保存し、READ_CONTACTS 権限を持つ API 呼び出し元にのみ公開します。

キーに 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 キー検証アプリはこの情報をデバイスに保存し、READ_CONTACTS 権限を持つ API 呼び出し元にのみ公開します。

パラメータ
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 キー検証アプリはこの情報をデバイスに保存し、READ_CONTACTS 権限を持つ API 呼び出し元にのみ公開します。

ルックアップ キーのリストが空の場合、この API は連絡先に関連付けられていないキーを保存します。

1 つ以上のルックアップ キーを使用してこの 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 バイト)