İletişim Sağlayıcı ve İlişkiler Bilgileri

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

Android 10'dan önce uygulamalar, verilere erişmek ve 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ğini artırmak için veri erişilebilirliğiyle ilgili değişiklikler içerir. Birincisi, temeldeki veritabanı iletişim yakınlık verilerini içermiyor. Bu nedenle uygulamalar ona yazamaz veya ondan okuyamaz. Değişiklikler şunları içerir:

  • Kişi Sağlayıcı, bir kullanıcıya ulaşma sayısı, en son iletişim zamanı, kullanılan uygulama, iletişim kurulan kişi veya ilgili herhangi bir geçmiş verileri gibi kişilerle ilgili verileri kaydetmez.
  • Kişi Sağlayıcısı otomatik tamamlama API'sindeki MultiAutoCompleteTextView sınıfı, sorgu sonuçlarını etkileşim sayacına göre sıralamaz.
  • Android çerçevesi örtük kişi sıralaması sağlamaz. (Ancak, kullanıcı kontrollü, açık kişi sıralaması ( yıldız işaretli 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ısını 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ı özelliklerine dayanan 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ı'dan gelen kişi etkileşimi verileri kaldırılmamıştır. Bunun yerine, Android 10'daki eşdeğerini simüle etmek için kişi etkileşimi verileri periyodik olarak (yaklaşık olarak günde bir kez) temizlenir. Kişi Sağlayıcı bu bilgileri yalnızca geçici olarak depolar.

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 performans göstermez. API davranışı üzerindeki olası etkiler şunları içerir:

  • İletişim Sağlayıcısı için kullanıcının tercihlerini saklamak veya temas ile etkileşimleri olmaz ContactsContract.Contacts tablo sütunları.
  • 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.
    • Bunlar, Android 10'a yükseltme yapıldığında silinir (etkilenen sütunlara bağlı olarak null veya 0'a ayarlanır).
    • Otomatik tamamlama sorgu API'lerinde sıralama, asla yakın ilgi alanı bilgilerine göre alfabetik olarak sıralanmış sonuçları döndürür.
    • Sık görüşülen kişiler için API çağrıları (örneğin, CONTENT_FREQUENT_URI filtre dizesini kullanarak) sonuç döndürmez.

Genel olarak, kullanımdan kaldırılan Kişiler Sağlayıcı API öğelerinden herhangi biri sayaç kullanıyorsa, bu sayaçlar (Android 10'da kullanıldığında) 0 içerir ve sorgulandığında 0 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ı, bu nedenle bu sınıfa yapılan güncelleme ve silme çağrıları yok sayılır.

API'leri etkileyen alanlar

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

Android 10'da 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. Bu kullanımdan kaldırılmış alanlardan biri API'lerinizin birçoğunda kullanılabileceğinden, kullanım durumları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ığına bakılmaksızın her zaman 0 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 yok.
ContactsContract.CommonDataKinds.Email
ContactsContract.CommonDataKinds.Phone
ContactsContract.CommonDataKinds.Callable
Filtre (otomatik tamamlama da denir) API'leri

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

Sonuçlar yakınlığa göre sıralanmadı. Bunlar yıldızlı ve ada göre sıralanmıştır.

Alternatifler

Kullanımdan kaldırılan API alanlarına alternatif yoktur. İster yeni API'ler ister yeni alanlar şeklinde olsun, bu kısıtlamaları aşmak için tasarlanmış geçici çözümlere izin verilmez.

Uygulama

Bu değişiklikleri uygulamak için hiçbir şey yapmanıza gerek yoktur. Android işletim sistemi platformunda kullanıcı gizliliğini artırma girişiminin bir parçasıdır. Bununla birlikte, uygulamalarınız kullanımdan kaldırılan ö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 çatallı bir sürümünü kullanıyorsanız, Kişi Sağlayıcınızı güncellemeniz gerekir.

Özelleştirme yok

Kişilerin yakın ilgi alanı bilgilerindeki değişiklikleri özelleştirmeyin veya bunların etrafında çalışmayın. Çerçeve içinde yerleşiktirler ve herhangi bir değişiklik yapmak sizi uyumluluktan kurtarır. Varsayılan ayarları asla değiştirmeyin veya arka kapı alternatifleri sağlamayın.