Android कॉन्टैक्ट पिकर

Android का कॉन्टैक्ट पिकर, निजता को सुरक्षित रखने वाला एक स्टैंडर्ड इंटरफ़ेस उपलब्ध कराता है. इसकी मदद से, लोग चुनिंदा संपर्कों को ऐप्लिकेशन के साथ शेयर कर सकते हैं. Android 17 में लॉन्च की गई यह सुविधा, READ_CONTACTS की अनुमति के बिना भी काम करती है.

कॉन्टैक्ट पिकर का इस्तेमाल करके, ऐप्लिकेशन चुनिंदा संपर्क डेटा का ऐक्सेस मांग सकते हैं. जैसे, फ़ोन नंबर या ईमेल पते. उपयोगकर्ता उन संपर्कों को चुनता है जिन्हें वह शेयर करना चाहता है. इसके बाद, सिस्टम ऐप्लिकेशन को सिर्फ़ उन संपर्कों को ऐक्सेस करने की अनुमति देता है.

वास्तुकला

कॉन्टैक्ट पिकर में दो मुख्य कॉम्पोनेंट होते हैं:

  • पिकर यूज़र इंटरफ़ेस (यूआई) ऐप्लिकेशन: यह कॉम्पोनेंट, संपर्कों को चुनने के लिए उपयोगकर्ता को दिखने वाला इंटरफ़ेस होता है.
  • सेशन प्रोवाइडर: यह कॉम्पोनेंट, अस्थायी ऐक्सेस सेशन को मैनेज करने वाली बैकएंड सेवा के तौर पर काम करता है.

कॉन्टैक्ट पिकर का सीक्वेंस डायग्राम

पहली इमेज. सीक्वेंस डायग्राम

पिकर यूज़र इंटरफ़ेस (यूआई)

पिकर यूज़र इंटरफ़ेस (यूआई), संपर्क चुनने के लिए यूज़र इंटरफ़ेस को मैनेज करता है. साथ ही, अनुरोध किए गए डेटा टाइप के आधार पर व्यू भरने के लिए, सीधे संपर्क प्रोवाइडर से क्वेरी करता है. इन व्यू को ऐक्सेस किया जा सकता है:

  • सिर्फ़ फ़ोन नंबर: यूज़र इंटरफ़ेस (यूआई) में, फ़ोन नंबर वाले संपर्क दिखते हैं.
  • सिर्फ़ ईमेल: यूज़र इंटरफ़ेस (यूआई) में, ईमेल पते वाले संपर्क दिखते हैं.
  • संपर्क की कस्टम जानकारी: यूज़र इंटरफ़ेस (यूआई) में, अनुरोध किए गए खास डेटा फ़ील्ड से मेल खाने वाले संपर्क दिखते हैं.

इसके अलावा, यूज़र इंटरफ़ेस (यूआई) में ये सुविधाएं भी उपलब्ध हैं:

  • अंग्रेज़ी के अक्षरों के क्रम में लगाई गई सूची: संपर्कों को अंग्रेज़ी के अक्षरों के क्रम में लगाया जाता है. साथ ही, डुप्लीकेट संपर्कों को हटाया जाता है.
  • संपर्क के अवतार: यूज़र इंटरफ़ेस (यूआई) में, संपर्क की फ़ोटो या अवतार दिखते हैं.
  • पसंदीदा: संपर्कों की सूची में सबसे ऊपर, पसंदीदा कैटगरी दिखती है.
  • प्रोफ़ाइल स्विचर: इस सुविधा की मदद से, लोग अलग-अलग उपयोगकर्ता प्रोफ़ाइल से संपर्क चुन सकते हैं. जैसे, निजी प्रोफ़ाइल के मुकाबले, वर्क प्रोफ़ाइल.
  • एक और एक से ज़्यादा विकल्प चुनना: सिस्टम में, एक और एक से ज़्यादा विकल्प चुनने के मोड उपलब्ध हैं. डिफ़ॉल्ट सीमा 50 और ज़्यादा से ज़्यादा सीमा 100 है.
  • चुने गए संपर्कों की झलक: लोग पुष्टि करने से पहले, चुने गए संपर्कों की झलक देख सकते हैं और उन्हें मैनेज कर सकते हैं.
  • तेज़ी से स्क्रोल करना: इस सुविधा की मदद से, संपर्क सूची में तेज़ी से नेविगेट किया जा सकता है.
  • खोजें: किसी खास संपर्क को खोजने के लिए, खोज बार उपलब्ध है.
  • निजता से जुड़ा बैनर और निजता की जानकारी वाला पेज: एक ज़रूरी सूचना में, लोगों को यह बताया जाता है कि ऐप्लिकेशन, डेटा के किन फ़ील्ड (जैसे, फ़ोन नंबर, ईमेल) का अनुरोध कर रहा है.

सेशन प्रोवाइडर

सेशन प्रोवाइडर (packages/providers/ContactsProvider), क्लाइंट ऐप्लिकेशन और संपर्क प्रोवाइडर के बीच सुरक्षित इंटरमीडियरी के तौर पर काम करता है.

  • भूमिका: सेशन प्रोवाइडर का इस्तेमाल सिर्फ़ तब करें, जब Intent.ACTION_PICK_CONTACTS का इस्तेमाल करके पिकर लॉन्च किया जाता है.
  • सेशन मैनेजमेंट: जब कोई उपयोगकर्ता संपर्क चुनता है, तो पिकर यूज़र इंटरफ़ेस (यूआई), चुने गए डेटा को सेशन प्रोवाइडर में लिखता है. यह डेटा, क्लाइंट के यूआईडी से मैप किया जाता है.
  • डेटा ऐक्सेस: प्रोवाइडर, पिकर को content://com.android.providers.contacts.picker.sessions यूआरआई दिखाता है. क्लाइंट ऐप्लिकेशन को यूआरआई दिखाने से पहले, पिकर, पढ़ने के लिए सही फ़्लैग लागू करता है. इस यूआरआई से, उपयोगकर्ता के चुने गए खास डेटा फ़ील्ड को अस्थायी तौर पर, ग्रेन्यूलर रीड ऐक्सेस मिलता है. इससे, संपर्क का सारा डेटा नहीं दिखता.
  • खास ऐक्सेस: android.permission.MANAGE_CONTACTS_PICKER_SESSION सिग्नेचर और खास अनुमतियां, सेशन प्रोवाइडर को लिखने के ऐक्सेस से सुरक्षित रखती हैं. इससे यह पक्का होता है कि सिर्फ़ भरोसेमंद सिस्टम पिकर ही सेशन बना सकता है.

इंटिग्रेशन

हार्डवेयर बनाने वाली कंपनियों और पार्टनर को, Android 17 और इसके बाद के वर्शन वाले बिल्ड में, Android का कॉन्टैक्ट पिकर शामिल करना होगा.

इस्तेमाल किए जा सकने वाले इंटेंट

  • Intent.ACTION_PICK_CONTACTS: Android 17 और इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, यह इंटेंट इस्तेमाल करने का सुझाव दिया जाता है.
  • Intent.ACTION_PICK: पुराने सिस्टम के साथ काम करने की सुविधा के लिए बनाया गया. सिस्टम, इन अनुरोधों को, इस्तेमाल किए जा सकने वाले एमआईएमई टाइप (ईमेल, फ़ोन या संपर्क) के लिए, नए पिकर पर अपने-आप भेज देता है.

सेशन मैनेजमेंट

डिवाइस की परफ़ॉर्मेंस और निजता को बनाए रखने के लिए, सेशन प्रोवाइडर, डेटा को मिटाने की सख्त नीति लागू करता है:

  • डेटा मिटाने का काम: सिस्टम का एक काम (CleanupJobService), 24 घंटे से ज़्यादा पुराने सेशन डेटा को हटाने के लिए समय-समय पर चलता है.
  • पंक्तियों की सीमा: स्टोरेज के ज़्यादा इस्तेमाल को रोकने के लिए, सेशन प्रोवाइडर टेबल में ज़्यादा से ज़्यादा 5,000 पंक्तियां हो सकती हैं. अगर टेबल इस साइज़ तक पहुंच जाती है, तो सिस्टम, नया सेशन डेटा डालने से पहले, सबसे पुरानी पंक्तियों को अपने-आप हटा देता है.
  • डेटा सेव रखना: सेशन डेटा, कुछ समय के लिए सेव रहता है. क्लाइंट ऐप्लिकेशन से उम्मीद की जाती है कि वह संपर्क डेटा मिलने के तुरंत बाद उसे सेव कर ले.

अनुमतियां

सेशन प्रोवाइडर को लिखने का ऐक्सेस पाने के लिए, android.permission.MANAGE_CONTACTS_PICKER_SESSION अनुमति की ज़रूरत होती है. यह अनुमति, Android के कॉन्टैक्ट पिकर पैकेज तक सीमित है.

कस्टमाइज़ेशन और अनुपालन

पार्टनर, फ़ॉन्ट और रंगों जैसे विज़ुअल एलिमेंट को अपनी पसंद के मुताबिक बना सकते हैं. हालांकि, लागू करने के तरीके, Android CDD के सेक्शन 3.18.2 सिस्टम कॉन्टैक्ट पिकरके मुताबिक होने चाहिए.

सत्यापन

पार्टनर को, Compatibility Test Suite (CTS) और Google Mobile Services Test Suite (GTS), दोनों का इस्तेमाल करके, अपने लागू करने के तरीके की पुष्टि करनी होगी.