थर्ड-पार्टी कॉलिंग ऐप्स को सपोर्ट करना, थर्ड-पार्टी कॉलिंग ऐप्स को सपोर्ट करना, थर्ड-पार्टी कॉलिंग ऐप्स को सपोर्ट करना

एंड्रॉइड 9 तृतीय-पक्ष (3पी) कॉलिंग ऐप्स को बेहतर समर्थन देने के लिए एपीआई प्रदान करता है। 3पी कॉलिंग ऐप्स आम तौर पर वाहक फोन कॉल के साथ सह-अस्तित्व के लिए PHONE_STATE प्रसारण जैसे टेलीफोनी एपीआई पर भरोसा करते हैं। परिणामस्वरूप, 3पी कॉलिंग ऐप्स को कैरियर कॉल को प्राथमिकता देनी चाहिए और अक्सर कैरियर कॉल के लिए रास्ता बनाने के लिए ऐप में आने वाली कॉल को चुपचाप अस्वीकार करने या चल रही कॉल को समाप्त करने का सहारा लेना चाहिए।

एंड्रॉइड 9 में एपीआई 3पी ऐप्स और कैरियर कॉल के बीच समवर्ती कॉलिंग परिदृश्यों का समर्थन करते हैं। यह संभव बनाता है, उदाहरण के लिए, कैरियर कॉल में संलग्न रहते हुए इनकमिंग 3P कॉल प्राप्त करना। जब उपयोगकर्ता 3पी कॉल में संलग्न होता है तो फ्रेमवर्क वाहक कॉल को सुनिश्चित करने की जिम्मेदारी लेता है।

Android 9 में, 3P कॉलिंग ऐप्स को स्व-प्रबंधित ConnectionService API लागू करने के लिए प्रोत्साहित किया जाता है। इस एपीआई का उपयोग करके कॉलिंग ऐप बनाने के तरीके के बारे में अधिक जानकारी के लिए, कॉलिंग ऐप बनाएं देखें।

स्व-प्रबंधित ConnectionService एपीआई डेवलपर्स को सिस्टम कॉल लॉग में लॉग इन अपने ऐप में कॉल करने का विकल्प चुनने का अवसर भी देता है ( EXTRA_LOG_SELF_MANAGED_CALLS देखें)। एंड्रॉइड संगतता परिभाषा दस्तावेज़ (सीडीडी) (अनुभाग 7.4.1.2) की आवश्यकताओं के अनुसार, आपको यह सुनिश्चित करना चाहिए कि आपका डायलर/फोन ऐप इन कॉल लॉग प्रविष्टियों को प्रदर्शित करता है और 3पी कॉलिंग ऐप का नाम दिखाता है जहां से कॉल उत्पन्न हुई थी (उदाहरण के लिए) AOSP डायलर ऐप इस आवश्यकता को कैसे पूरा करता है, 3P कॉलिंग ऐप्स से कॉल लॉग प्रविष्टियाँ देखें)।

ऐप्स अपने ऐप्स के कनेक्शन पर CAPABILITY_SUPPORT_HOLD और CAPABILITY_HOLD सेट करने के लिए ज़िम्मेदार हैं। हालाँकि, यह संभव है कि कुछ परिस्थितियों में कोई ऐप कॉल होल्ड नहीं कर सके। रूपरेखा में इस प्रकार के मामलों को हल करने के प्रावधान शामिल हैं।

परिदृश्यों

आपको निम्नलिखित परिदृश्यों को संभालने के लिए अपने डायलर ऐप को संशोधित करना चाहिए।

इनकमिंग कॉल को संभालना जो चल रही कॉल को डिस्कनेक्ट कर देता है

ऐसे परिदृश्य में जहां 3P कॉल चल रही है (उदाहरण के लिए सुपरकॉलर कॉल में) जो होल्ड का समर्थन नहीं करती है, और उपयोगकर्ता को एक मोबाइल कॉल प्राप्त होती है (उदाहरण के लिए उनके वाहक FooCom के माध्यम से), आपके डायलर/फ़ोन ऐप को उपयोगकर्ता को उत्तर देने का संकेत देना चाहिए मोबाइल नेटवर्क कॉल चालू 3पी कॉल समाप्त कर देगी।

यह उपयोगकर्ता अनुभव महत्वपूर्ण है क्योंकि 3पी कॉलिंग ऐप में एक चालू कॉल हो सकती है जिसे फ्रेमवर्क द्वारा नहीं रखा जा सकता है। किसी नए मोबाइल कॉल का उत्तर देने से चालू 3पी कॉल डिस्कनेक्ट हो जाती है।

उदाहरण के लिए नीचे उपयोगकर्ता इंटरफ़ेस देखें:

इनकमिंग कॉल चालू 3P कॉल को डिस्कनेक्ट कर रही है
चित्र 1. इनकमिंग कॉल जो चल रही 3पी कॉल को डिस्कनेक्ट कर देती है

आपका डायलर ऐप कॉल एक्स्ट्रा की जांच करके जांच कर सकता है कि क्या किसी इनकमिंग कॉल के कारण दूसरी कॉल डिस्कनेक्ट हो रही है। सुनिश्चित करें कि EXTRA_ANSWERING_DROPS_FG_CALL TRUE पर सेट है, और EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME उस ऐप के नाम पर सेट है जिसकी कॉल आने वाली मोबाइल कॉल का उत्तर देने पर डिस्कनेक्ट हो जाती है।

3पी कॉलिंग ऐप्स से कॉल लॉग प्रविष्टियाँ

3पी कॉलिंग ऐप्स के डेवलपर्स अपने ऐप में कॉल को सिस्टम कॉल लॉग में लॉग इन करने का विकल्प चुन सकते हैं ( EXTRA_LOG_SELF_MANAGED_CALLS देखें)। इसका मतलब यह है कि कॉल लॉग में ऐसी प्रविष्टियाँ होना संभव है जो मोबाइल नेटवर्क कॉल के लिए नहीं हैं।

जब एओएसपी डायलर ऐप 3पी कॉलिंग ऐप से संबंधित कॉल लॉग प्रविष्टियां प्रदर्शित करता है, तो उस ऐप का नाम जहां कॉल हुई थी, कॉल लॉग में प्रदर्शित होता है, जैसा कि नीचे दिखाया गया है:

3पी कॉलिंग ऐप के साथ कॉल लॉग प्रविष्टि
चित्र 2. डायलर ऐप पर 3पी कॉलिंग ऐप के नाम के साथ कॉल लॉग प्रविष्टि

कॉल लॉग प्रविष्टि से जुड़े ऐप का नाम निर्धारित करने के लिए, PhoneAccountHandle का एक उदाहरण बनाने के लिए कॉल लॉग प्रदाता में PHONE_ACCOUNT_COMPONENT_NAME और PHONE_ACCOUNT_ID कॉलम का उपयोग करें, जो कॉल लॉग प्रविष्टि के स्रोत की पहचान करता है। फ़ोन खाते का विवरण प्राप्त करने के लिए TelecomManager से पूछें।
यह निर्धारित करने के लिए कि क्या कॉल लॉग प्रविष्टि 3P कॉलिंग ऐप से है, यह देखने के लिए PhoneAccount क्षमताओं की जाँच करें कि क्या CAPABILITY_SELF_MANAGED सेट है।

लौटाए गए PhoneAccount की getLabel विधि 3P कॉलिंग ऐप से कॉल लॉग प्रविष्टि से जुड़े ऐप का नाम लौटाती है।

मान्यकरण

यह जांचने के लिए कि आपका डिवाइस 3P कॉलिंग ऐप्स का समर्थन करता है, टेलीकॉम परीक्षण एप्लिकेशन का उपयोग करें, जो स्व-प्रबंधित कनेक्शन सेवा एपीआई लागू करता है। एप्लिकेशन /packages/services/Telecomm/testapps/ में स्थित है।

  1. अपने एंड्रॉइड स्रोत रिपॉजिटरी के रूट से परीक्षण ऐप बनाएं:

    mmma packages/services/Telecomm/testapps/

  2. adb install -g -r <apk path> का उपयोग करके बिल्ड एपीके इंस्टॉल करें। फिर आपके लॉन्चर में एक स्व-प्रबंधित नमूना आइकन जोड़ा जाता है।

  3. परीक्षण एप्लिकेशन खोलने के लिए आइकन टैप करें।

इनकमिंग कॉल को संभालना जो चल रही कॉल को डिस्कनेक्ट कर देता है

यह सत्यापित करने के लिए इन चरणों का पालन करें कि एक इनकमिंग कॉल चालू 3P कॉल को डिस्कनेक्ट कर देती है।

3पी कॉलिंग ऐप्स के लिए परीक्षण एप्लिकेशन
चित्र 3. स्व-प्रबंधित कनेक्शन सेवा एपीआई के नमूना कार्यान्वयन के साथ परीक्षण अनुप्रयोग
  1. होल्डेबल विकल्प को अनचेक करें।
  2. नया नमूना आउटगोइंग कॉल शुरू करने के लिए आउटगोइंग टैप करें।
  3. कॉल को सक्रिय करने के लिए सक्रिय बटन पर टैप करें।
  4. किसी अन्य फ़ोन से परीक्षणाधीन डिवाइस के फ़ोन नंबर पर कॉल करें। यह उस परिदृश्य को सामने लाता है जहां आपके डायलर को एक ऐप का नाम प्रदान किया जाता है, जिससे उसकी कॉल डिस्कनेक्ट हो जाएगी।
  5. जब आपका काम पूरा हो जाए, तो परीक्षण ऐप में डिस्कनेक्ट बटन पर टैप करें।

3पी कॉलिंग ऐप्स से कॉल लॉग प्रविष्टियाँ

उपरोक्त चरणों को पूरा करने के बाद, परीक्षण ऐप को सिस्टम कॉल लॉग में कॉल लॉग करना चाहिए। 3पी कॉलिंग ऐप्स से डिवाइस लॉग कॉल की पुष्टि करने के लिए, अपना डायलर ऐप खोलें और सिस्टम कॉल लॉग में कॉल दिखाई देने की पुष्टि करें।