ContactKeyClient


interface ContactKeyClient : HasApiKey


عميل لواجهة برمجة التطبيقات Contact Key

ملخّص

الوظائف العامة

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?
)

تعرض هذه الدالة غرضًا لعرض نشاط الخطوات الإرشادية، وتحدّد أنّه تم عرض الخطوات الإرشادية على هذا الجهاز.

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)

تعرض هذه الطريقة غرضًا لنشاط "مسح رمز الاستجابة السريعة ضوئيًا".

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

تعرض هذه الدالة غرضًا من النشاط "مسح رمز الاستجابة السريعة ضوئيًا" لحساب معيّن.

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

تعرض هذه الطريقة غرضًا لنشاط "عرض رمز الاستجابة السريعة".

Task<Boolean>

تعرض هذه الطريقة مهمة تكتمل بنجاح سواء كانت واجهة برمجة التطبيقات متاحة أم لا.

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 تم توفيره أو إضافته أو إزالته. سيتم عرض قائمة بجميع المفاتيح الخاصة بمعرّفات الحسابات المقدَّمة، وليس فقط المفاتيح التي تم تعديلها.

المعلمات
accountIds: List<String>

قائمة أرقام تعريف الحسابات التي سيتم تلقّي إشعارات بشأن التعديلات عليها

المرتجعات
Flow<List<E2eeAccountContactKeyParcelable>>

تدفّق يعرض قوائم E2eeAccountContactKeyParcelable لمعرّفات الحسابات المقدَّمة كلّما تم تعديل أي مفتاح أو إضافته أو إزالته

عمليات الطرح
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 يحتوي على معلومات مفتاح جهة الاتصال، أو قيمة فارغة في حال عدم العثور على مفتاح جهة اتصال.

getE2eeSelfKey

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

تعرض هذه الدالة إدخال مفتاح ذاتي للتشفير التام بين الأطراف، وذلك بالنظر إلى deviceId وaccountId واسم الحزمة المستنتَج للمتصل.

المعلمات
deviceId: String

معرّف يحدّده التطبيق للجهاز

accountId: String

معرّف خاص بالتطبيق للحساب

المرتجعات
Task<E2eeSelfKeyParcelable?>

E2eeSelfKeyParcelable يحتوي على معلومات المفتاح الذاتي للتشفير التام بين الأطراف، أو قيمة فارغة إذا لم يتم العثور على مفتاح ذاتي.

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>

تعرض هذه الطريقة غرضًا لنشاط "مسح رمز الاستجابة السريعة ضوئيًا".

المعلمات
lookupKey: String

القيمة التي تشير إلى جهة الاتصال

skipOnboarding: Boolean = false

هذا الحقل غير مستخدَم حاليًا.

getScanQrCodeIntentForAccount

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

تعرض هذه الدالة غرضًا من النشاط "مسح رمز الاستجابة السريعة ضوئيًا" لحساب معيّن.

المعلمات
packageName: String

اسم الحزمة المرتبط بالحساب الذي يريد المستخدم إثبات ملكيته

accountId: String

معرّف الحساب المرتبط بالحساب الذي يريد المستخدم إثبات ملكيته

getShowQrCodeIntent

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

تعرض هذه الطريقة غرضًا لنشاط "عرض رمز الاستجابة السريعة".

المعلمات
packageName: String?

اسم الحزمة المرتبط بالتطبيق الذي تحتاج إلى مفاتيحه (اختياري)

skipOnboarding: Boolean = false

هذا الحقل غير مستخدَم حاليًا.

isEnabled

fun isEnabled(): Task<Boolean>

تعرض هذه الطريقة مهمة تكتمل بنجاح سواء كانت واجهة برمجة التطبيقات متاحة أم لا.

إذا كانت واجهة برمجة التطبيقات متاحة، ستعرض المهمة التي تم إرجاعها نتيجة صحيحة، وإلا ستعرض نتيجة خاطئة.

سيتم رصد الاستثناءات التي يتم طرحها عادةً عندما تكون واجهة برمجة التطبيقات غير متاحة، وسيتم بدلاً من ذلك عرض مهمة تعرض القيمة "خطأ" بنجاح.

registerAccountContactKeysListener

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

تسجيل أداة معالجة لتلقّي إشعارات بشأن تعديلات مفاتيح جهات الاتصال في الحساب

سيتم استدعاء أداة الاستماع عند تعديل أي مفتاح لأي 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، ولكنها تسمح بإدراج/تعديل مفاتيح متعددة في الوقت نفسه. يتم إدراج كل مفتاح في معاملة منفصلة، لذلك قد يتم إدراج بعض المفاتيح حتى إذا أظهرت المهمة استثناءً.

يمكن للعملاء اختيار التعامل مع حالات الفشل المؤقتة عن طريق إعادة إرسال المجموعة بأكملها، لأنّ واجهة برمجة التطبيقات هذه لن تؤثّر في حالة المفاتيح التي تم إدراجها من قبل.

بالنسبة إلى كل مفتاح، إذا تم توفير lookupKey ولكن لم يتم توفير معلومات الاتصال الأساسية (displayName وphoneNumber وemailAddress)، ستحاول واجهة برمجة التطبيقات هذه أيضًا استرداد اسم جهة الاتصال ورقم هاتفها وعنوان بريدها الإلكتروني من "مقدِّم جهات الاتصال". عند استرداد المفتاح، يجب أن تستخدم تطبيقات إدارة جهات الاتصال هذه المعلومات للتأكّد من أنّ المفتاح يُستخدم فقط لجهة الاتصال المقصودة.

يخزِّن تطبيق "التحقّق من مفتاح Android" هذه المعلومات على الجهاز ولا يعرضها إلا لبرامج واجهة برمجة التطبيقات التي لديها إذن READ_CONTACTS.

في حال عدم توفير lookupKey لمفتاح، ستخزّن واجهة برمجة التطبيقات هذه مفتاحًا غير مرتبط بأي جهة اتصال.

المعلمات
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>

تُدرِج هذه الطريقة إدخالاً جديدًا في جدول مفاتيح الاتصال المستخدَمة في التشفير التام بين الأطراف أو تعدّل إدخالاً إذا كان متوفّرًا. مفتاح التشفير التام بين الأطراف الذي تم إدراجه أو تعديله تملكه جهة الاتصال في تطبيق الاتصال.

ستخزِّن واجهة برمجة التطبيقات هذه أيضًا اسم جهة الاتصال ورقم هاتفها وعنوان بريدها الإلكتروني من "مقدِّم جهات الاتصال"، بالإضافة إلى المفتاح. عند استرداد المفتاح، يجب أن تستخدم تطبيقات إدارة جهات الاتصال هذه المعلومات للتأكّد من أنّ المفتاح يُستخدم فقط لجهة الاتصال المقصودة.

يخزِّن تطبيق "التحقّق من مفتاح Android" هذه المعلومات على الجهاز ولا يعرضها إلا لبرامج واجهة برمجة التطبيقات التي لديها إذن 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>

تُدرِج هذه الطريقة إدخالاً جديدًا في جدول مفاتيح الاتصال المستخدَمة في التشفير التام بين الأطراف أو تعدّل إدخالاً إذا كان متوفّرًا. مفتاح التشفير التام بين الأطراف الذي تم إدراجه أو تعديله تملكه جهة الاتصال في تطبيق الاتصال.

بالنسبة إلى كل مفتاح بحث يتم تقديمه، ستخزِّن واجهة برمجة التطبيقات هذه أيضًا اسم جهة الاتصال ورقم هاتفها وعنوان بريدها الإلكتروني من "مقدِّم جهات الاتصال"، بالإضافة إلى المفتاح. عند استرداد المفتاح، يجب أن تستخدم تطبيقات إدارة جهات الاتصال هذه المعلومات للتأكّد من أنّ المفتاح يُستخدم فقط لجهة الاتصال المقصودة.

يخزِّن تطبيق "التحقّق من مفتاح Android" هذه المعلومات على الجهاز ولا يعرضها إلا لبرامج واجهة برمجة التطبيقات التي لديها إذن READ_CONTACTS.

إذا كانت قائمة مفاتيح البحث فارغة، ستخزِّن واجهة برمجة التطبيقات هذه مفتاحًا غير مرتبط بأي جهة اتصال.

سيؤدي استدعاء واجهة برمجة التطبيقات هذه باستخدام مفتاح بحث واحد أو أكثر إلى تعديل البيانات الوصفية للمفتاح لربطه بجهات الاتصال المقدَّمة، ولكن لن تتم إزالة أي عمليات ربط حالية لجهات الاتصال غير المقدَّمة في القائمة. لإزالة الربط بين جهة اتصال ومفتاح، اتّصِل برقم 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 بايت)