संपर्क प्रदाता और संबद्धता जानकारी

एंड्रॉइड 10 से शुरू होकर, संपर्क-एफ़िनिटी-संबंधित डेटा, संपर्क प्रदाता घटक (डिवाइस के संपर्क ऐप में देखे गए डेटा का स्रोत) द्वारा प्रबंधित किया जाता है, जिसे एंड्रॉइड 9 और उससे पहले की तुलना में अलग तरीके से एक्सेस किया जाता है।

एंड्रॉइड 10 से पहले, ऐप्स डेटा तक पहुंचने और इसे डिवाइस और ऑनलाइन सेवाओं के बीच स्थानांतरित करने के लिए संपर्क प्रदाता का उपयोग करते थे। एंड्रॉइड 10 में संपर्क प्रदाता का उपयोग करने वाले सभी एंड्रॉइड 10 उपकरणों में बढ़ी हुई उपयोगकर्ता गोपनीयता सुनिश्चित करने के लिए डेटा एक्सेसिबिलिटी के संबंध में बदलाव किए गए हैं। एक के लिए, अंतर्निहित डेटाबेस में संपर्क समानता डेटा शामिल नहीं है। इसलिए ऐप्स इसमें लिख या पढ़ नहीं सकते। परिवर्तनों में निम्नलिखित शामिल हैं:

  • संपर्क प्रदाता संपर्क-एफ़िनिटी-संबंधित डेटा रिकॉर्ड नहीं करता है, जैसे कि उपयोगकर्ता से कितनी बार संपर्क किया गया, संपर्क का अंतिम समय, उपयोग किया गया ऐप, संपर्क किया गया व्यक्ति, या कोई संबंधित ऐतिहासिक डेटा।
  • संपर्क प्रदाता स्वत: पूर्ण API में MultiAutoCompleteTextView वर्ग इंटरैक्शन काउंटर द्वारा क्वेरी परिणामों को क्रमबद्ध नहीं करता है।
  • एंड्रॉइड फ्रेमवर्क अंतर्निहित संपर्क रैंकिंग प्रदान नहीं करता है। (हालांकि, उपयोगकर्ता-नियंत्रित, स्पष्ट संपर्क रैंकिंग (जैसे तारांकित संपर्क) बनी हुई है)।

इन परिवर्तनों को लागू करने के लिए, निम्न में से कोई एक कार्य करें:

  • नवीनतम संपर्क प्रदाता का उपयोग करें.
  • अपना संस्करण अपडेट करें (यदि आप फोर्क्ड संस्करण का उपयोग कर रहे हैं)।

इसके अलावा, ऐसे सभी ऐप्स को अपडेट करें जो अप्रचलित संपर्क प्रदाता सुविधाओं पर निर्भर हैं। अप्रचलित कार्यों के समाधान के लिए डिज़ाइन किए गए एपीआई संस्करणों की अनुमति नहीं है।

एंड्रॉइड 9 और उससे पहले के संस्करण के लिए, संपर्क प्रदाता से संपर्क-इंटरैक्शन डेटा हटाया नहीं गया है। इसके बजाय, एंड्रॉइड 10 में समकक्ष अनुकरण करने के लिए संपर्क-इंटरैक्शन डेटा को समय-समय पर (प्रति दिन लगभग एक बार) साफ़ किया जाता है। संपर्क प्रदाता इस जानकारी को संग्रहीत करता है, लेकिन केवल अस्थायी रूप से।

एपीआई परिवर्तन

इन बदलावों से एपीआई पर बड़ा असर पड़ने की उम्मीद है। उदाहरण के लिए, स्वत: पूर्ण रैंकिंग उतना अच्छा प्रदर्शन नहीं करेगी. एपीआई व्यवहार पर संभावित प्रभावों में निम्नलिखित शामिल हैं:

  • संपर्क प्रदाता, संपर्क के लिए उपयोगकर्ता की प्राथमिकताओं या उसके साथ इंटरैक्शन को ContactsContract.Contacts तालिका कॉलम में संग्रहीत नहीं करेगा।
  • स्वत: पूर्ण एपीआई इंटरेक्शन काउंटर के आधार पर परिणामों को क्रमबद्ध नहीं करेगा।
  • TIMES_CONTACTED / TIMES_USED और LAST_TIME_CONTACTED / LAST_TIME_USED कॉलम अपडेट नहीं किए जाएंगे।
    • एंड्रॉइड 10 में अपग्रेड करने पर ये साफ़ हो जाते हैं (प्रभावित कॉलम के आधार पर या तो null या 0 पर सेट हो जाते हैं)।
    • स्वत: पूर्ण क्वेरी एपीआई में रैंकिंग वर्णानुक्रम में क्रमबद्ध परिणाम लौटाती है, कभी भी एफ़िनिटी जानकारी के आधार पर नहीं।
    • लगातार संपर्कों के लिए एपीआई कॉल (उदाहरण के लिए, फ़िल्टर स्ट्रिंग CONTENT_FREQUENT_URI का उपयोग करके) कोई परिणाम नहीं देता है।

आम तौर पर, यदि अप्रचलित संपर्क प्रदाता एपीआई तत्वों में से कोई भी काउंटर का उपयोग करता है, तो उन काउंटरों (जब एंड्रॉइड 10 में उपयोग किया जाता है) में 0 होता है, और पूछे जाने पर 0 लौटाता है। प्रभावित एपीआई से अद्यतन अनुरोधों को नजरअंदाज कर दिया जाता है। उदाहरण के लिए, ContactsContract.DataUsageFeedback क्लास को हटा दिया गया था, इसलिए इस क्लास में अपडेट और डिलीट कॉल को नजरअंदाज कर दिया गया है।

फ़ील्ड जो एपीआई को प्रभावित करते हैं

Android 10 में ये फ़ील्ड बदल गए हैं:

एंड्रॉइड 10 में प्रभावित फ़ील्ड विभिन्न एपीआई में मौजूद हो सकते हैं, जैसा कि नीचे दी गई तालिका में दर्शाया गया है। बहिष्कृत एपीआई फ़ील्ड सूचीबद्ध व्यवहार लौटाते हैं। क्योंकि इन अप्रचलित फ़ील्ड में से एक का उपयोग आपके कई एपीआई में किया जा सकता है, अपने उपयोग के मामलों को सत्यापित करें।

कक्षा एपीआई फ़ील्ड 10 रिटर्न
ContactsContract.Contacts
ContactsContract.RawContacts
ContactsContract.Data
ContactsContract.Entity
ContactOptionsColumns
TIMES_CONTACTED
LAST_TIME_CONTACTED
इन कॉलमों में हमेशा 0 होता है, भले ही उनका उपयोग कैसे भी किया गया हो। उन्हें संशोधित करने के प्रयासों को नजरअंदाज कर दिया जाता है।
Contacts markAsContacted() कोई ऑपरेशन नहीं।
ContactsContract.DataUsageFeedback

update
delete

कोई ऑपरेशन नहीं।
ContactsContract.Contacts लगातार ( तारांकित + लगातार)
CONTENT_STREQUENT_FILTER_URI
CONTENT_STREQUENT_URI
CONTENT_FREQUENT_URI
केवल तारांकित संपर्क लौटाता है। कोई बारंबार संपर्क वापस नहीं आया.
ContactsContract.CommonDataKinds.Email
ContactsContract.CommonDataKinds.Phone
ContactsContract.CommonDataKinds.Callable
फ़िल्टर (जिसे स्वत: पूर्ण भी कहा जाता है) एपीआई

CONTENT_FILTER_URI
ENTERPRISE_CONTENT_FILTER_URI

परिणाम एफ़िनिटी के आधार पर क्रमबद्ध नहीं हैं. इन्हें तारांकित और नाम के आधार पर क्रमबद्ध किया गया है।

वैकल्पिक

अप्रचलित एपीआई फ़ील्ड का कोई विकल्प नहीं है। इन प्रतिबंधों से बचने के लिए डिज़ाइन किए गए समाधान, चाहे नए एपीआई या नए फ़ील्ड के रूप में हों, की अनुमति नहीं है।

कार्यान्वयन

इन परिवर्तनों को लागू करने के लिए आपको कुछ भी करने की आवश्यकता नहीं है. वे एंड्रॉइड ओएस प्लेटफॉर्म पर उपयोगकर्ता की गोपनीयता बढ़ाने की पहल का हिस्सा हैं। हालाँकि, यदि आपके ऐप्स अप्रचलित सुविधाओं पर निर्भर हैं, तो आप किसी भी बदलाव की भरपाई के लिए अपने ऐप्स को अपडेट करना चाह सकते हैं। इसके अतिरिक्त, यदि आप संपर्क प्रदाता के फोर्क्ड संस्करण का उपयोग करते हैं, तो आपको अपने संपर्क प्रदाता को अपडेट करना होगा।

कोई अनुकूलन नहीं

संपर्क एफ़िनिटी जानकारी परिवर्तनों को अनुकूलित या उसके आसपास काम न करें। वे ढांचे में निर्मित हैं, और कोई भी बदलाव करने से आप अनुपालन से बाहर हो जाते हैं। कभी भी डिफ़ॉल्ट सेटिंग्स में बदलाव न करें या पिछले दरवाजे के विकल्प प्रदान न करें।