एंड्रॉइड 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पी कॉल डिस्कनेक्ट हो जाती है।
उदाहरण के लिए नीचे उपयोगकर्ता इंटरफ़ेस देखें:
आपका डायलर ऐप कॉल एक्स्ट्रा की जांच करके जांच कर सकता है कि क्या किसी इनकमिंग कॉल के कारण दूसरी कॉल डिस्कनेक्ट हो रही है। सुनिश्चित करें कि EXTRA_ANSWERING_DROPS_FG_CALL
TRUE
पर सेट है, और EXTRA_ANSWERING_DROPS_FG_CALL_APP_NAME
उस ऐप के नाम पर सेट है जिसकी कॉल आने वाली मोबाइल कॉल का उत्तर देने पर डिस्कनेक्ट हो जाती है।
3पी कॉलिंग ऐप्स से कॉल लॉग प्रविष्टियाँ
3पी कॉलिंग ऐप्स के डेवलपर्स अपने ऐप में कॉल को सिस्टम कॉल लॉग में लॉग इन करने का विकल्प चुन सकते हैं ( EXTRA_LOG_SELF_MANAGED_CALLS
देखें)। इसका मतलब यह है कि कॉल लॉग में ऐसी प्रविष्टियाँ होना संभव है जो मोबाइल नेटवर्क कॉल के लिए नहीं हैं।
जब एओएसपी डायलर ऐप 3पी कॉलिंग ऐप से संबंधित कॉल लॉग प्रविष्टियां प्रदर्शित करता है, तो उस ऐप का नाम जहां कॉल हुई थी, कॉल लॉग में प्रदर्शित होता है, जैसा कि नीचे दिखाया गया है:
कॉल लॉग प्रविष्टि से जुड़े ऐप का नाम निर्धारित करने के लिए, PhoneAccountHandle
का एक उदाहरण बनाने के लिए कॉल लॉग प्रदाता में PHONE_ACCOUNT_COMPONENT_NAME
और PHONE_ACCOUNT_ID
कॉलम का उपयोग करें, जो कॉल लॉग प्रविष्टि के स्रोत की पहचान करता है। फ़ोन खाते का विवरण प्राप्त करने के लिए TelecomManager
से पूछें।
यह निर्धारित करने के लिए कि क्या कॉल लॉग प्रविष्टि 3P कॉलिंग ऐप से है, यह देखने के लिए PhoneAccount
क्षमताओं की जाँच करें कि क्या CAPABILITY_SELF_MANAGED
सेट है।
लौटाए गए PhoneAccount
की getLabel
विधि 3P कॉलिंग ऐप से कॉल लॉग प्रविष्टि से जुड़े ऐप का नाम लौटाती है।
मान्यकरण
यह जांचने के लिए कि आपका डिवाइस 3P कॉलिंग ऐप्स का समर्थन करता है, टेलीकॉम परीक्षण एप्लिकेशन का उपयोग करें, जो स्व-प्रबंधित कनेक्शन सेवा एपीआई लागू करता है। एप्लिकेशन /packages/services/Telecomm/testapps/
में स्थित है।
अपने एंड्रॉइड स्रोत रिपॉजिटरी के रूट से परीक्षण ऐप बनाएं:
mmma packages/services/Telecomm/testapps/
adb install -g -r <apk path>
का उपयोग करके बिल्ड एपीके इंस्टॉल करें। फिर आपके लॉन्चर में एक स्व-प्रबंधित नमूना आइकन जोड़ा जाता है।परीक्षण एप्लिकेशन खोलने के लिए आइकन टैप करें।
इनकमिंग कॉल को संभालना जो चल रही कॉल को डिस्कनेक्ट कर देता है
यह सत्यापित करने के लिए इन चरणों का पालन करें कि एक इनकमिंग कॉल चालू 3P कॉल को डिस्कनेक्ट कर देती है।
- होल्डेबल विकल्प को अनचेक करें।
- नया नमूना आउटगोइंग कॉल शुरू करने के लिए आउटगोइंग टैप करें।
- कॉल को सक्रिय करने के लिए सक्रिय बटन पर टैप करें।
- किसी अन्य फ़ोन से परीक्षणाधीन डिवाइस के फ़ोन नंबर पर कॉल करें। यह उस परिदृश्य को सामने लाता है जहां आपके डायलर को एक ऐप का नाम प्रदान किया जाता है, जिससे उसकी कॉल डिस्कनेक्ट हो जाएगी।
- जब आपका काम पूरा हो जाए, तो परीक्षण ऐप में डिस्कनेक्ट बटन पर टैप करें।
3पी कॉलिंग ऐप्स से कॉल लॉग प्रविष्टियाँ
उपरोक्त चरणों को पूरा करने के बाद, परीक्षण ऐप को सिस्टम कॉल लॉग में कॉल लॉग करना चाहिए। 3पी कॉलिंग ऐप्स से डिवाइस लॉग कॉल की पुष्टि करने के लिए, अपना डायलर ऐप खोलें और सिस्टम कॉल लॉग में कॉल दिखाई देने की पुष्टि करें।