Android Kişi Seçici

Android Kişi Seçici, kullanıcıların belirli kişileri uygulamalarla paylaşmasına olanak tanıyan standart ve gizliliği korumaya yönelik bir arayüz sağlar. Android 17'de kullanıma sunulan bu özellik, geniş kapsamlı READ_CONTACTS iznine izin gerektirmeyen bir alternatif olarak işlev görür.

Uygulamalar, Kişi Seçici'yi kullanarak telefon numaraları veya e-posta adresleri gibi belirli kişi verilerine erişim isteğinde bulunabilir. Kullanıcı, paylaşmak istediği kişileri seçer ve sistem, uygulamaya yalnızca bu bilgilere geçici okuma erişimi verir.

Mimari

Kişi seçici iki ana bileşenden oluşur:

  • Seçici kullanıcı arayüzü uygulaması: Bu bileşen, kişileri seçmek için kullanıcıya yönelik arayüz olarak kullanılır.
  • Oturum sağlayıcı: Bu bileşen, geçici erişim oturumunu yöneten arka uç hizmeti olarak işlev görür.

Kişi seçici adım sırası diyagramı

Şekil 1. Adım sırası diyagramı

Seçici kullanıcı arayüzü

Seçici kullanıcı arayüzü, kişi seçimi için kullanıcı arayüzünü yönetir ve istenen veri türlerine göre görünümleri doldurmak için doğrudan kişi sağlayıcıya sorgu gönderir. Desteklenen görünümler şunlardır:

  • Yalnızca telefon numaraları: Kullanıcı arayüzünde, telefon numarası içeren kişiler gösterilir.
  • Yalnızca e-postalar: Kullanıcı arayüzünde, e-posta adresleri içeren kişiler gösterilir.
  • Özel iletişim bilgileri: Kullanıcı arayüzünde, istenen belirli veri alanlarıyla eşleşen kişiler gösterilir.

Ayrıca kullanıcı arayüzü aşağıdaki özellikleri destekler:

  • Alfabetik olarak sıralanmış liste: Kişiler, alfabetik olarak sıralanır ve yinelenenler kaldırılır.
  • Kişi avatarları: Kullanıcı arayüzünde kişi fotoğrafları veya avatarları gösterilir.
  • Favoriler: Kişiler listesinin en üstünde bir Favoriler kategorisi gösterilir.
  • Profil değiştirici: Bu özellik, kullanıcıların farklı kullanıcı profillerinden (ör. iş ve kişisel) kişiler seçmesine olanak tanır.
  • Tekli ve çoklu seçim: Sistem hem tekli hem de çoklu seçim modlarını destekler (varsayılan sınır 50, maksimum sınır ise 100'dür).
  • Seçim önizlemesi: Kullanıcılar, onaylamadan önce seçtikleri kişileri önizleyebilir ve yönetebilir.
  • Hızlı kaydırma: Bu özellik, kişi listesinde hızlıca gezinmenizi sağlar.
  • Arama: Belirli kişileri bulmak için bir arama çubuğu sağlanır.
  • Gizlilik banner'ı ve gizlilik ayrıntıları sayfası: Zorunlu bir bildirim, kullanıcılara uygulamanın hangi veri alanlarını (ör. telefon numaraları, e-postalar) istediği konusunda bilgi verir.

Oturum sağlayıcı

Oturum sağlayıcı (packages/providers/ContactsProvider), istemci uygulaması ile kişiler sağlayıcı arasında güvenli bir aracı görevi görür.

  • Rol: Seçiciyi Intent.ACTION_PICK_CONTACTS kullanarak başlattığınızda oturum sağlayıcıyı kullanın.
  • Oturum yönetimi: Kullanıcılar kişi seçtiğinde seçici kullanıcı arayüzü, seçim verilerini (istemcinin UID'siyle eşlenmiş) oturum sağlayıcıya yazar.
  • Veri erişimi: Sağlayıcı, seçiciye bir content://com.android.providers.contacts.picker.sessions URI'si döndürür. Seçici, URI'yi istemci uygulamasına döndürmeden önce uygun okuma işaretlerini uygular. Bu URI, kullanıcının seçtiği belirli veri alanlarına geçici ve ayrıntılı okuma erişimi verirken tüm kişi verilerini göstermez.
  • Ayrıcalıklı erişim: android.permission.MANAGE_CONTACTS_PICKER_SESSION İmza ve ayrıcalıklı izinler, oturum sağlayıcıya yazma erişimini korur ve yalnızca güvenilir sisteme ait seçim aracının oturum oluşturabilmesini sağlar.

Entegrasyon

Donanım üreticileri ve iş ortakları, Android 17 ve sonraki sürümlerin yüklü olduğu derlemelere Android kişi seçiciyi dahil etmelidir.

Desteklenen amaçlar

  • Intent.ACTION_PICK_CONTACTS: Android 17 ve sonraki sürümleri hedefleyen uygulamalar için önerilen amaç.
  • Intent.ACTION_PICK: Geriye dönük uyumluluk için korunur. Sistem, bu istekleri desteklenen MIME türleri (e-posta, telefon veya kişi) için otomatik olarak yeni seçiciye yönlendirir.

Oturum yönetimi

Oturum sağlayıcı, cihazın sağlığını ve gizliliğini korumak için katı bir veri temizleme politikası uygular:

  • Temizleme işi: 24 saatten eski oturum verilerini kaldırmak için düzenli olarak bir sistem işi (CleanupJobService) çalıştırılır.
  • Satır sınırı: Aşırı depolama alanı kullanımını önlemek için oturum sağlayıcı tablosu en fazla 5.000 satırla sınırlandırılmıştır. Tablo bu boyuta ulaştığında sistem, yeni oturum verilerini eklemeden önce en eski satırları otomatik olarak temizler.
  • Kalıcılık: Oturum verileri geçicidir. İstemci uygulamalarının, döndürülen kişi verilerini alındıktan hemen sonra kalıcı hale getirmesi beklenir.

İzinler

Oturum sağlayıcıya yazma erişimi için android.permission.MANAGE_CONTACTS_PICKER_SESSION izni gerekir. Bu izin, Android kişi seçici paketiyle sınırlıdır.

Özelleştirme ve uygunluk

İş ortakları, yazı tipleri ve renkler gibi görsel öğeleri özelleştirebilir ancak uygulamalar Android CDD bölüm 3.18.2'ye (TBD) uygun olmalıdır.

Doğrulama

İş ortakları, hem Compatibility Test Suite (CTS) hem de Google Mobil Hizmetleri Test Paketi (GTS) kullanarak uygulamalarını doğrulamalıdır.