Kişi Sağlayıcı ve Yakın İlgi Alanı Bilgileri

Android 10'dan itibaren, Kişi Sağlayıcı bileşeni (bir cihazın kişiler uygulamasında görülen verilerin kaynağı) tarafından yönetilen kişiler yakınlığı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 daha fazla kullanıcı gizliliği sağlamak için veri erişilebilirliğiyle ilgili değişiklikleri içerir. Birincisi, temel alınan veritabanı, kişi yakınlıkları verilerini içermez. Bu nedenle uygulamalar yazamaz veya ondan okuyamaz. Değişiklikler şunları içerir:

  • Kişi Sağlayıcı, bir kullanıcıyla kaç kez iletişime geçildiği, en son ne zaman iletişim kurulduğu, kullanılan uygulama, iletişime geçilen kişi veya ilgili herhangi bir geçmiş veri gibi kişilerle yakın ilgi alanıyla ilgili 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, örtük kişi sıralaması sağlamaz. (Ancak, kullanıcı kontrollü, 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ı özelliklerine dayanan uygulamaları güncelleyin. Kullanımdan kaldırılan işlevlere geçici çözüm olarak tasarlanan 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ılmadı. Bunun yerine, Android 10'daki eşdeğerini simüle etmek için kişi etkileşimi verileri düzenli aralıklarla (yaklaşık 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ı, bir kullanıcının 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.
    • Bunlar, Android 10'a yükseltme yapıldığında (etkilenen sütunlara bağlı olarak null veya 0 olarak ayarlanır) temizlenir.
    • Otomatik tamamlama sorgusu API'lerinde sıralama, hiçbir zaman yakınlık bilgilerine göre alfabetik olarak sıralanmış sonuçları döndürür.
    • Sık iletişim kuran 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şi 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 yoksayılır. Örneğin, ContactsContract.DataUsageFeedback sınıfı kullanımdan kaldırılmıştır, bu nedenle bu sınıfa yapılan güncelleme ve silme çağrıları yoksayılır.

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 bulunabilir. Kullanımdan kaldırılan API alanları, davranışları listelendiği gibi döndürür. Bu kullanımdan kaldırılan 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ıklarına bakılmaksızın her zaman 0 içerir. Bunları 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ızlı kişileri döndürür. Sık temaslar döndürülmedi.
ContactsContract.CommonDataKinds.Email
ContactsContract.CommonDataKinds.Phone
ContactsContract.CommonDataKinds.Callable
Filtre (otomatik tamamlama olarak da adlandırılır) API'leri

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

Sonuçlar yakınlığa göre sıralanmaz. Bunlar, yıldızlı ve isme 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ız gerekmez. Android işletim sistemi platformunda kullanıcı gizliliğini artırma girişiminin bir parçasıdırlar. Ancak, uygulamalarınız kullanımdan kaldırılmış özelliklere güveniyorsa, değişiklikleri telafi etmek için uygulamalarınızı güncellemek isteyebilirsiniz. Ayrıca, Kişi Sağlayıcısının çatallı 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 bilgileri değişikliklerini özelleştirmeyin veya bu değişiklikler etrafında çalışmayın. Çerçevede yerleşik olarak bulunurlar ve herhangi bir değişiklik yapmak sizi uyumluluktan uzaklaştırır. Asla varsayılan ayarları değiştirmeyin veya arka kapı alternatifleri sunmayın.