İletişim Sağlayıcı ve Bağlı Kuruluş Bilgileri

Android 10'dan başlayarak, Kişiler Sağlayıcı bileşeni (cihazın kişiler uygulamasında görülen verilerin kaynağı) tarafından yönetilen kişiler ilgi alanıyla ilgili verilere, Android 9 ve önceki sürümlerden farklı şekilde erişilir.

Android 10'dan önce uygulamalar, verilere erişmek ve bunları bir cihaz ile çevrimiçi hizmetler arasında aktarmak için Kişi Sağlayıcıyı kullanıyordu. Android 10, Kişi Sağlayıcıyı kullanan tüm Android 10 cihazlarda kullanıcı gizliliğinin artırılmasını sağlamak için veri erişilebilirliğine ilişkin değişiklikler içerir. Birincisi, temeldeki veri tabanı temas yakınlıkları verilerini içermiyor. Bu nedenle uygulamalar ona yazamaz veya okuyamaz. Değişiklikler aşağıdakileri içerir:

  • Kişi Sağlayıcısı, bir kullanıcıyla kaç kez iletişim kurulduğu, son iletişim zamanı, kullanılan uygulama, iletişim kurulan kişi gibi kişilerle yakın ilgi alanıyla ilgili verileri veya ilgili geçmiş verileri kaydetmez.
  • Kişiler 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 örtülü kişiler sıralaması sağlamaz. (Ancak, kullanıcı tarafından kontrol edilen, açık kişi sıralaması ( yıldızlı kişiler gibi) kalır).

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

  • En son Kişi Sağlayıcıyı kullanın.
  • Sürümünüzü güncelleyin (çatallı bir sürüm kullanıyorsanız).

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

Android 9 ve önceki sürümler için Kişi Sağlayıcısından alınan kişi-etkileşim verileri kaldırılmamıştır. Bunun yerine, Android 10'daki eşdeğerini simüle etmek için kişi-etkileşim verileri periyodik olarak (yaklaşık olarak günde bir kez) temizlenir. Kişi Sağlayıcısı bu bilgileri yalnızca geçici olarak saklar.

API değişiklikleri

Bu değişikliklerin API'ler üzerinde büyük bir etkisi olması bekleniyor. Örneğin, otomatik tamamlama sıralaması da iyi performans göstermez. API davranışı üzerindeki olası etkiler aşağıdakileri içerir:

  • Kişi Sağlayıcısı, kullanıcının kişiyle ilgili tercihlerini veya kişiyle olan 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üncellenmeyecek.
    • Android 10'a yükseltme sonrasında bunlar silinir (etkilenen sütunlara bağlı olarak null veya 0'a ayarlanır).
    • Otomatik tamamlama sorgu API'lerindeki sıralama, sonuçları hiçbir zaman yakın ilgi bilgisine göre değil, alfabetik olarak sıralanmış olarak döndürür.
    • Sık görüşülen kişilere yönelik API çağrıları (örneğin, CONTENT_FREQUENT_URI filtre dizesini kullanan) hiçbir sonuç döndürmez.

Genel olarak, kullanımdan kaldırılan Contacts Provider API öğelerinden herhangi biri sayaç kullanıyorsa bu sayaçlar (Android 10'da kullanıldığında) 0 içerir ve sorgulandığında 0 değerini döndürür. Etkilenen API'lerden gelen güncelleme istekleri dikkate alınmaz. Örneğin, ContactsContract.DataUsageFeedback sınıfı kullanımdan kaldırıldı, dolayısıyla bu sınıfa yapılan güncelleme ve silme çağrıları dikkate alınmaz.

API'leri etkileyen alanlar

Bu alanlar Android 10'da değişti:

Android 10'daki etkilenen alanlar, aşağıdaki tabloda belirtildiği gibi farklı API'lerde mevcut olabilir. Kullanımdan kaldırılan API alanları, listelenen davranışları döndürür. Kullanımdan kaldırılan bu alanlardan biri birçok API'nizde kullanılabileceğinden kullanım örneklerinizi 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ına bakılmaksızın her zaman 0 değerini içerir. Bunları değiştirme girişimleri göz ardı edilir.
Contacts markAsContacted() İşlem yok.
ContactsContract.DataUsageFeedback

update
delete

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

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

Sonuçlar yakınlığa göre sıralanmıyor. Bunlar yıldız işaretine ve ada göre sıralanır.

Alternatifler

Kullanımdan kaldırılan API alanlarının alternatifi yoktur. Yeni API'ler veya yeni alanlar biçiminde olsun, bu kısıtlamaları aşmak için tasarlanmış geçici çözümlere izin verilmez.

Uygulama

Bu değişiklikleri uygulamak için herhangi bir şey yapmanıza gerek yoktur. Bunlar, Android işletim sistemi platformunda kullanıcı gizliliğini artırma girişiminin bir parçasıdır. Ancak uygulamalarınız kullanımdan kaldırılmış özelliklere dayanıyorsa değişiklikleri telafi etmek için uygulamalarınızı güncellemek isteyebilirsiniz. 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 ilgi alanı bilgileri değişikliklerini özelleştirmeyin veya bu değişiklikleri düzeltmeyin. Bunlar çerçevenin içine yerleştirilmiştir ve herhangi bir değişiklik yapmak sizi uyumluluktan çıkarır. Asla varsayılan ayarları değiştirmeyin veya arka kapı alternatifleri sunmayın.