Kişi sağlayıcı ve yakınlık bilgileri

Android 10'dan itibaren, Kişi Sağlayıcı bileşeni (cihazın Kişiler uygulamasında görülen verilerin kaynağı) tarafından yönetilen, kişilerle ilgili yakınlık verilerine Android 9 ve önceki sürümlere kıyasla farklı bir şekilde erişilir.

Android 10'dan önce uygulamalar, verilere erişmek ve verileri cihaz ile online hizmetler arasında aktarmak için Kişiler Sağlayıcı'yı kullanıyordu. Android 10, Kişi Sağlayıcı'yı kullanan tüm Android 10 cihazlarda daha fazla kullanıcı gizliliği sağlamak için veri erişilebilirliğiyle ilgili değişiklikler içerir. Örneğin, temel veritabanında kişi yakınlıkları verileri yoktur. Bu nedenle uygulamalar bu depolama alanına veri yazamaz veya bu alandan veri okuyamaz. Yapılan değişiklikler şunlardır:

  • Kişi Sağlayıcı, kullanıcıyla iletişime geçme sayısı, son iletişim zamanı, kullanılan uygulama, iletişime geçilen kişi veya ilgili geçmiş veriler gibi kişilerle yakınlık ilişkili verileri kaydetmez.
  • Kişi Sağlayıcı otomatik tamamlama API'sindeki MultiAutoCompleteTextView sınıfı, sorgu sonuçlarını etkileşim sayacına göre sıralamaz.
  • Android çerçevesi, gizli kişi sıralaması sağlamaz. (Ancak kullanıcı tarafından kontrol edilen açık kişi sıralaması (ör. yıldızlı kişiler) aynı kalır.)

Bu değişiklikleri uygulamak için aşağıdakilerden birini yapın:

  • En yeni Contacts Provider'ı kullanın.
  • Sürümü güncelleyin (çatallanmış bir sürüm kullanıyorsanız).

Ayrıca, desteği sonlandırılan Kişi Sağlayıcı özelliklerini kullanan tüm uygulamaları güncelleyin. Desteği sonlandırılan işlevlere geçici çözüm olarak tasarlanmış API sürümlerine izin verilmez.

Android 9 ve önceki sürümlerde, Kişi Sağlayıcı'daki kişi etkileşimi verileri kaldırılmamıştır. Bunun yerine, Android 10'daki eşdeğeri taklit etmek için kişi etkileşimi verileri düzenli olarak (yaklaşık olarak günde bir kez) silinir. Kişiler Sağlayıcısı bu bilgileri depolar ancak yalnızca geçici olarak.

API değişiklikleri

Bu değişikliklerin API'leri önemli ölçüde etkileyeceği tahmin edilmektedir. Örneğin, otomatik tamamlama sıralaması o kadar iyi performans göstermez. API davranışı üzerindeki olası etkiler şunlardır:

  • Kişi Sağlayıcı, kullanıcının kişiyle ilgili tercihlerini veya etkileşimlerini ContactsContract.Contacts tablo sütunlarında saklamaz.
  • Otomatik tamamlama API'si, sonuçları etkileşim sayacına göre sıralamaz.
  • TIMES_CONTACTED / TIMES_USED ve LAST_TIME_CONTACTED / LAST_TIME_USED sütunları güncellenmez.
    • Bu değerler, Android 10'a yükseltildikten sonra temizlenir (etkilenen sütunlara bağlı olarak null veya 0 olarak ayarlanır).
    • Otomatik tamamlama sorgu API'lerindeki sıralama, sonuçları hiçbir zaman yakınlık bilgilerine göre değil, alfabetik olarak döndürür.
    • Sık iletişim kurulan kullanıcılar için API çağrıları (ör. CONTENT_FREQUENT_URI filtre dizesi kullanılarak) sonuç döndürmez.

Desteği sonlandırılan Kişi Sağlayıcı API öğelerinden herhangi biri sayaç kullanıyorsa bu sayaçlar (Android 10'da kullanıldığında) 0 değerini içerir ve sorgulandığında 0 döndürür. Etkilenen API'lerden gelen güncelleme istekleri yoksayılır. Örneğin, ContactsContract.DataUsageFeedback sınıfının desteği sonlandırıldığı için bu sınıfa yönelik güncelleme ve silme çağrıları yoksayılır.

API'leri etkileyen alanlar

Android 10'da aşağıdaki alanlar değişti:

Android 10'da etkilenen alanlar, aşağıdaki tabloda belirtildiği gibi farklı API'lerde bulunabilir. Desteği sonlandırılmış API alanları, listelenen davranışlarla döndürülür. Desteği sonlandırılan bu alanlardan biri API'lerinizden birkaçında kullanılabileceğinden kullanım alanlarınızı doğrulayın.

Sınıf API alanları 10 iade
ContactsContract.Contacts
ContactsContract.RawContacts
ContactsContract.Data
ContactsContract.Entity
ContactOptionsColumns
TIMES_CONTACTED
LAST_TIME_CONTACTED
Bu sütunlar, nasıl kullanıldıklarından bağımsız olarak her zaman 0 değerini içerir. Bu değerleri değiştirme girişimleri yoksayılır.
Contacts markAsContacted() İşlem yok.
ContactsContract.DataUsageFeedback

update
delete

İşlem yok.
ContactsContract.Contacts Sık (yıldızlı + sık)
CONTENT_STREQUENT_FILTER_URI
CONTENT_STREQUENT_URI
CONTENT_FREQUENT_URI
Yalnızca yıldız işaretli kişileri döndürür. Sık görüşülen kişi döndürülmedi.
ContactsContract.CommonDataKinds.Email
ContactsContract.CommonDataKinds.Phone
ContactsContract.CommonDataKinds.Callable
Filtre (otomatik tamamlama olarak da bilinir) API'leri

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

Sonuçlar yakınlığa göre sıralanmamıştır. Bu öğeler öne çıkan ve ada göre sıralanır.

Alternatifler

Desteği sonlandırılan API alanlarının alternatifi yoktur. Yeni API'ler veya yeni alanlar şeklinde bu kısıtlamaları atlatmayı amaçlayan geçici çözümlere izin verilmez.

Uygulama

Bu değişiklikleri uygulamak için herhangi bir işlem yapmanız gerekmez. Bu API'ler, Android OS platformunda kullanıcı gizliliğini artırma girişiminin bir parçasıdır. Ancak uygulamalarınız desteği sonlandırılan özelliklerden yararlanıyorsa değişiklikleri telafi etmek için uygulamalarınızı güncelleyebilirsiniz. Ayrıca, Kişi Sağlayıcı'nın çatallanmış bir sürümünü kullanıyorsanız Kişi Sağlayıcı'nızı güncellemeniz gerekir.

Özelleştirme yok

Kişi yakınlık bilgileriyle ilgili değişiklikleri özelleştirmeyin veya bu değişiklikleri atlatmaya çalışmayın. Bu politikalar çerçeveye yerleştirilmiştir ve politikalarda değişiklik yapmak uyumluluğunuzu bozar. Varsayılan ayarları hiçbir zaman değiştirmeyin veya arka kapı alternatifleri sunmayın.