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. Değişiklikler aşağıdakileri içerir:

  • 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 Kişi Sağlayıcı'yı kullanın.
  • Sürümü güncelleyin (çatallanmış bir sürüm kullanıyorsanız).

Ayrıca, kullanımdan kaldırılan Kişi Sağlayıcı özelliklerini kullanan uygulamaları da güncelleyin. Desteği sonlandırılan işlevler için 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ılmadı. Bunun yerine, Android 10'daki eşdeğeri simüle etmek için kişi etkileşimi verileri düzenli olarak (günde yaklaşık bir kez) temizlenir. Kişiler Sağlayıcısı bu bilgileri saklar, ancak sadece geçici bir süre için geçerlidir.

API değişiklikleri

Bu değişikliklerin API'leri önemli ölçüde etkileyeceği beklenmektedir. Örneğin, otomatik tamamlama sıralaması 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'lerinde 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 kişiler 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ılan API alanları, listelendiği şekilde davranışları döndürü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ıralanmaz. Bunlar yıldızlı ve ad ölçütlerine 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 girişim, Android OS platformunda kullanıcı gizliliğini artırma girişiminin bir parçası. 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şilerin 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 herhangi bir değişiklik yaptığınızda politikalara uygunluğunuzu kaybedersiniz. Varsayılan ayarları hiçbir zaman değiştirmeyin veya arka kapı alternatifleri sunmayın.