انتخابگر مخاطب Android

«انتخابگر مخاطب Android» واسطی استاندارد و حافظ حریم خصوصی ارائه می‌دهد که به کاربران امکان می‌دهد مخاطبین خاصی را با برنامه‌ها هم‌رسانی کنند. این ویژگی که در Android 17 معرفی شده است، به‌عنوان جایگزینی بدون نیاز به اجازه برای اجازه گسترده READ_CONTACTS عمل می‌کند.

بااستفاده از «انتخابگر مخاطب»، برنامه‌ها می‌توانند دسترسی به داده‌های مخاطب خاصی مثل شماره تلفن یا نشانی ایمیل را درخواست کنند. کاربر مخاطبینی را که می‌خواهد هم‌رسانی کند انتخاب می‌کند و سیستم به برنامه اجازه می‌دهد فقط به آن جزئیات دسترسی خواندنی موقت داشته باشد.

معماری

«انتخاب‌گر مخاطبین» از دو عنصر اصلی تشکیل شده است:

  • برنامه میانای کاربر انتخابگر: این عنصر به‌عنوان رابط کاربر برای انتخاب مخاطبین عمل می‌کند.
  • ارائه‌دهنده جلسه: این عنصر به‌عنوان سرویس زیرینه مدیریت‌کننده جلسه دسترسی موقت عمل می‌کند.

نمودار توالی «انتخابگر مخاطب»

شکل ۱. نمودار توالی

میانای کاربر انتخاب‌گر

«میانای کاربر انتخابگر» میانای کاربر را برای انتخاب مخاطب مدیریت می‌کند و مستقیماً از ارائه‌دهنده مخاطبین درخواست می‌کند تا نماها را براساس انواع داده‌های درخواست‌شده پر کند. نماهای پشتیبانی‌شده شامل این موارد است:

  • فقط شماره تلفن: واسط کاربر مخاطبینی را نمایش می‌دهد که شماره تلفن دارند.
  • فقط ایمیل‌ها: میانای کاربری مخاطبین حاوی نشانی ایمیل را نمایش می‌دهد.
  • اطلاعات تماس سفارشی: رابط کاربری مخاطبینی را که با فیلدهای داده درخواست‌شده خاص مطابقت دارند نمایش می‌دهد.

علاوه‌براین، واسط کاربر از ویژگی‌های زیر پشتیبانی می‌کند:

  • فهرست مرتب‌شده به‌ترتیب حروف الفبا: مخاطبین به‌ترتیب حروف الفبا و بدون تکرار مرتب می‌شوند.
  • چهرک‌های مخاطب: میانای کاربر عکس‌ها یا چهرک‌های مخاطب را نمایش می‌دهد.
  • موارد دلخواه: دسته «موارد دلخواه» در بالای فهرست مخاطبین نمایش داده می‌شود.
  • جابه‌جاگر نمایه: این ویژگی به کاربران امکان می‌دهد مخاطبین را از نمایه‌های کاربری مختلف (برای مثال، کاری درمقابل خصوصی) انتخاب کنند.
  • انتخاب تکی و چندتایی: سیستم از هر دو حالت انتخاب تکی و چندتایی پشتیبانی می‌کند (محدودیت پیش‌فرض ۵۰ و حداکثر ۱۰۰ است).
  • پیش‌نمایش انتخاب: کاربران می‌توانند مخاطبین انتخاب‌شده را پیش‌نمایش و مدیریت کنند قبل‌از اینکه تأیید کنند.
  • پیمایش سریع: این ویژگی پیمایش سریع در فهرست مخاطبین را فعال می‌کند.
  • جستجو: نوار جستجویی برای یافتن مخاطبین خاص ارائه شده است.
  • برنمای حریم خصوصی و صفحه جزئیات حریم خصوصی: اعلانی اجباری به کاربران اطلاع می‌دهد که برنامه دقیقاً کدام فیلدهای داده (برای مثال، شماره تلفن، ایمیل) را درخواست می‌کند.

ارائه‌دهنده جلسه

ارائه‌دهنده جلسه (packages/providers/ContactsProvider) به‌عنوان واسطه‌ای امن بین برنامه کارخواه و ارائه‌دهنده مخاطبین عمل می‌کند.

  • نقش: فقط زمانی از ارائه‌دهنده جلسه استفاده کنید که انتخابگر را بااستفاده از Intent.ACTION_PICK_CONTACTS راه‌اندازی می‌کنید.
  • مدیریت جلسه: وقتی کاربر مخاطبین را انتخاب می‌کند، واسط کاربر انتخابگر داده‌های انتخاب را (که به UID مشتری نگاشت شده است) در ارائه‌دهنده جلسه می‌نویسد.
  • دسترسی به داده‌ها: ارائه‌دهنده یک content://com.android.providers.contacts.picker.sessions نشانی وب به انتخابگر برمی‌گرداند. انتخابگر پرچم‌های خواندن مناسب را قبل‌از برگرداندن نشانی وب به برنامه کاربر اعمال می‌کند. این نشانی وب دسترسی خواندن موقت و دقیق به فیلدهای داده خاصی که کاربر انتخاب کرده است را بدون آشکار کردن همه داده‌های مخاطب اعطا می‌کند.
  • دسترسی ممتاز: امضای android.permission.MANAGE_CONTACTS_PICKER_SESSION و اجازه‌های ممتاز از دسترسی نوشتن به ارائه‌دهنده جلسه محافظت می‌کنند و تضمین می‌کنند که فقط انتخابگر سیستم مورداعتماد می‌تواند جلسه ایجاد کند.

یکپارچه‌سازی

سازندگان سخت‌افزار و شرکا باید «انتخابگر مخاطب Android» را در ساخت‌های Android 17 و بالاتر بگنجانند.

مقصودهای پشتیبانی‌شده

  • ‫Intent.ACTION_PICK_CONTACTS: هدف پیشنهادی برای برنامه‌هایی که Android 17 و بالاتر را هدف‌یابی می‌کنند.
  • Intent.ACTION_PICK: برای سازگاری با نسخه قدیمی حفظ شده است. سیستم به‌طور خودکار این درخواست‌ها را به انتخابگر جدید برای انواع MIME پشتیبانی‌شده (ایمیل، تلفن، یا مخاطب) هدایت می‌کند.

مدیریت جلسه

برای حفظ سلامت و حریم خصوصی دستگاه، ارائه‌دهنده جلسه خط‌مشی پاک‌سازی داده‌های سخت‌گیرانه‌ای را اعمال می‌کند:

  • کار پاک‌سازی: کار سیستمی (CleanupJobService) به‌صورت دوره‌ای اجرا می‌شود تا داده‌های جلسه‌ای را که قدیمی‌تر از ۲۴ ساعت است بردارد.
  • محدودیت ردیف: برای جلوگیری از استفاده بیش‌ازحد از فضای ذخیره‌سازی، جدول ارائه‌دهنده جلسه حداکثر تا ۵۰۰۰ ردیف محدود شده است. اگر جدول به این اندازه برسد، سیستم به‌طور خودکار قدیمی‌ترین ردیف‌ها را قبل‌از درج داده‌های جلسه جدید حذف می‌کند.
  • ماندگاری: داده‌های جلسه موقتی است. برنامه‌های مشتری باید داده‌های مخاطب برگشتی را بلافاصله پس‌از دریافت حفظ کنند.

اجازه‌ها

دسترسی نوشتن به ارائه‌دهنده جلسه به اجازه android.permission.MANAGE_CONTACTS_PICKER_SESSION نیاز دارد که به بسته «انتخاب‌گر مخاطب Android» محدود شده است.

سفارشی‌سازی و مطابقت

شرکا می‌توانند عناصر بصری مانند قلم‌ها و رنگ‌ها را سفارشی‌سازی کنند، اما پیاده‌سازی‌ها باید از بخش ۳.۱۸.۲ انتخاب‌گر مخاطبین سیستم در Android CDD پیروی کنند.

اعتبارسنجی

شرکا باید پیاده‌سازی خود را بااستفاده از هر دو «مجموعه آزمون سازگاری» (CTS) و «مجموعه آزمون خدمات تلفن همراه Google» (GTS) درستی‌سنجی کنند.