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

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

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

वास्तुकला

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

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

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

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

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

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

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

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

  • वर्णमाला के क्रम में लगाई गई सूची: संपर्कों को वर्णमाला के क्रम में लगाया जाता है. साथ ही, डुप्लीकेट संपर्कों को हटाया जाता है.
  • संपर्क के अवतार: यूज़र इंटरफ़ेस (यूआई) में संपर्क की फ़ोटो या अवतार दिखते हैं.
  • पसंदीदा: संपर्कों की सूची में सबसे ऊपर, पसंदीदा कैटगरी दिखती है.
  • प्रोफ़ाइल स्विचर: इस सुविधा की मदद से, उपयोगकर्ता अलग-अलग प्रोफ़ाइलों से संपर्क चुन सकते हैं. उदाहरण के लिए, ऑफ़िस बनाम निजी प्रोफ़ाइल.
  • एक और एक से ज़्यादा विकल्प चुनना: सिस्टम, एक और एक से ज़्यादा विकल्प चुनने की सुविधा देता है. डिफ़ॉल्ट सीमा 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: पुराने सिस्टम के साथ काम करने की सुविधा के लिए बनाया गया. सिस्टम, इन अनुरोधों को अपने-आप नए पिकर पर भेज देता है. ऐसा, ईमेल, फ़ोन या संपर्क जैसे MIME टाइप के लिए किया जाता है.

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

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

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

अनुमतियां

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

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

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

सत्यापन

पार्टनर को यह पुष्टि करनी होगी कि उन्होंने CTS और GTS, दोनों का इस्तेमाल करके, अपने डिवाइसों पर Android Auto को लागू किया है.