कॉलिंग ऐप्लिकेशन की सहायता से उपयोगकर्ता अपने डिवाइस पर ऑडियो या वीडियो कॉल कर सकते हैं डिवाइस. कॉलिंग की सुविधा देने वाले ऐप्लिकेशन, कॉल करने के लिए अपने यूज़र इंटरफ़ेस का इस्तेमाल करते हैं फ़ोन ऐप्लिकेशन का डिफ़ॉल्ट इंटरफ़ेस, जैसा कि इस स्क्रीनशॉट में दिखाया गया है.
Android फ़्रेमवर्क में android.telecom
पैकेज शामिल है, जो
इसमें ऐसी क्लास शामिल हैं जो टेलिकॉम के हिसाब से, कॉल करने की सुविधा देने वाला ऐप्लिकेशन बनाने में आपकी मदद करती हैं
फ़्रेमवर्क शामिल है. टेलिकॉम फ़्रेमवर्क के मुताबिक अपने ऐप्लिकेशन को बनाने पर, आपको
मिलने वाले फ़ायदे:
- आपका ऐप्लिकेशन डिवाइस.
- आपका ऐप्लिकेशन, कॉल करने की सुविधा देने वाले ऐसे अन्य ऐप्लिकेशन के साथ इंटरैक्ट करता है जो मदद ली जा सकती है.
- फ़्रेमवर्क आपके ऐप्लिकेशन को ऑडियो और वीडियो रूटिंग मैनेज करने में मदद करता है.
- फ़्रेमवर्क आपके ऐप्लिकेशन को यह तय करने में मदद करता है कि उसके कॉल पर फ़ोकस है या नहीं.
मेनिफ़ेस्ट किए गए एलान और अनुमतियां
अपने ऐप्लिकेशन मेनिफ़ेस्ट में यह एलान करें कि आपका ऐप्लिकेशन
MANAGE_OWN_CALLS
अनुमति, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
<manifest … >
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS"/>
</manifest>
ऐप्लिकेशन अनुमतियों का एलान करने के बारे में ज़्यादा जानकारी के लिए देखें अनुमतियां.
आपको एक ऐसी सेवा की जानकारी देनी होगी जो
आपके ऐप्लिकेशन में ConnectionService
क्लास. टेलिकॉम
सबसिस्टम के लिए ज़रूरी है कि सेवा, BIND_TELECOM_CONNECTION_SERVICE
अनुमति का एलान करे, ताकि
उससे जुड़ने में मदद मिलती है. नीचे दिए गए उदाहरण में, सेवा का एलान करने का तरीका बताया गया है
आपका ऐप्लिकेशन मेनिफ़ेस्ट:
<service android:name="com.example.MyConnectionService"
android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
<intent-filter>
<action android:name="android.telecom.ConnectionService" />
</intent-filter>
</service>
सेवाओं के साथ-साथ, ऐप्लिकेशन के कॉम्पोनेंट के बारे में ज़्यादा जानकारी के लिए, यहां देखें ऐप्लिकेशन के कॉम्पोनेंट.
कनेक्शन सेवा लागू करना
कॉलिंग की सुविधा देने वाले आपके ऐप्लिकेशन को, ConnectionService
क्लास का ऐसा तरीका उपलब्ध कराना होगा जिससे टेलीकॉम सबसिस्टम बाइंड कर सके.
आपका ConnectionService
लागू होना चाहिए
नीचे दिए गए तरीके अपनाएं:
onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
टेलीकॉम सबसिस्टम इस तरीके को आपका ऐप्लिकेशन,
placeCall(Uri, Bundle)
को कॉल कर रहा है नया आउटगोइंग कॉल करने के लिए. आपका ऐप्लिकेशन,Connection
क्लास लागू करने का नया इंस्टेंस लौटाता है (ज़्यादा जानकारी के लिए, देखें कनेक्शन लागू करें) आउटगोइंग कॉल. कनेक्शन को अपनी पसंद के मुताबिक बनाने के लिए, ये कार्रवाइयां की जा सकती हैं:- आपके ऐप्लिकेशन को
setConnectionProperties(int)
तरीके को तर्क के तौर परPROPERTY_SELF_MANAGED
कॉन्सटेंट के साथ कॉल करना चाहिए यह बताने के लिए कि कनेक्शन किसी कॉलिंग ऐप्लिकेशन से शुरू हुआ है. - अगर आपके ऐप्लिकेशन में कॉल को होल्ड पर रखने की सुविधा उपलब्ध है, तो
setConnectionCapabilities(int)
तरीके को कॉल करें औरCAPABILITY_HOLD
औरCAPABILITY_SUPPORT_HOLD
कॉन्सटेंट के बिट मास्क मान का तर्क. - कॉल करने वाले (कॉलर) का नाम सेट करने के लिए,
setCallerDisplayName(String, int)
तरीका इस्तेमाल करेंPRESENTATION_ALLOWED
से गुज़र रहा हैint
पैरामीटर के रूप में स्थिर है, जो बताता है कि कॉलर का नाम दिखाए जा सकते हैं. - यह सुनिश्चित करने के लिए कि आउटगोइंग कॉल में वीडियो की स्थिति सही है,
Connection
ऑब्जेक्ट काsetVideoState(int)
तरीका और इसके ज़रिए लौटाए गए मान को भेजेंgetVideoState()
तरीकाConnectionRequest
ऑब्जेक्ट.
- आपके ऐप्लिकेशन को
onCreateOutgoingConnectionFailed(PhoneAccountHandle, ConnectionRequest)
टेलीकॉम सबसिस्टम इस तरीके को तब कॉल करता है, जब आपका ऐप्लिकेशन
placeCall(Uri, Bundle)
तरीके को कॉल करता है और आउटगोइंग कॉल नहीं किया जा सकता उन्हें शामिल किया जाएगा. ऐसी स्थिति में, आपके ऐप्लिकेशन को उपयोगकर्ता को जानकारी देनी चाहिए (इसके लिए उदाहरण के लिए, किसी अलर्ट बॉक्स या टोस्ट का इस्तेमाल करके) कि आउटगोइंग कॉल नहीं किया जा सकता रखा गया है. अगर कोई कॉल जारी रहता है, तो हो सकता है कि आपका ऐप्लिकेशन कॉल न कर पाए आपातकालीन कॉल है या अगर किसी अन्य ऐप्लिकेशन में कोई कॉल चल रहा है, तो कॉल करने से पहले उसे होल्ड पर रख सकता है.onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
टेलिकॉम सबसिस्टम इस तरीके को तब कॉल करता है, जब आपका ऐप्लिकेशन
addNewIncomingCall(PhoneAccountHandle, Bundle)
तरीके को कॉल करता है का इस्तेमाल करें. आपका ऐप्लिकेशन आपकेConnection
को लागू करने का नया इंस्टेंस ( ज़्यादा जानकारी के लिए, कनेक्शन लागू करना देखें) का इस्तेमाल करें. आपके पास, कनेक्शन बनाने के लिए ये कार्रवाइयां करें:- आपके ऐप्लिकेशन को
setConnectionProperties(int)
तरीके को तर्क के तौर परPROPERTY_SELF_MANAGED
कॉन्सटेंट के साथ कॉल करना चाहिए यह बताने के लिए कि कनेक्शन किसी कॉलिंग ऐप्लिकेशन से शुरू हुआ है. - अगर आपके ऐप्लिकेशन में कॉल को होल्ड पर रखने की सुविधा उपलब्ध है, तो
setConnectionCapabilities(int)
तरीके को कॉल करें औरCAPABILITY_HOLD
औरCAPABILITY_SUPPORT_HOLD
कॉन्सटेंट के बिट मास्क मान का तर्क. - कॉल करने वाले (कॉलर) का नाम सेट करने के लिए,
setCallerDisplayName(String, int)
तरीका इस्तेमाल करेंPRESENTATION_ALLOWED
से गुज़र रहा हैint
पैरामीटर के रूप में स्थिर है, जो बताता है कि कॉलर का नाम दिखाए जा सकते हैं. - इनकमिंग कॉल का फ़ोन नंबर या पता दर्ज करने के लिए,
Connection
ऑब्जेक्ट में सेsetAddress(Uri, int)
तरीका. - यह सुनिश्चित करने के लिए कि आउटगोइंग कॉल में वीडियो की स्थिति सही है,
Connection
ऑब्जेक्ट काsetVideoState(int)
तरीका और इसके ज़रिए लौटाए गए मान को भेजेंgetVideoState()
तरीकाConnectionRequest
ऑब्जेक्ट.
- आपके ऐप्लिकेशन को
onCreateIncomingConnectionFailed(PhoneAccountHandle, ConnectionRequest)
टेलीकॉम सबसिस्टम इस तरीके को तब कॉल करता है, जब आपका ऐप्लिकेशन टेलीकॉम को सूचित करने के लिए
addNewIncomingCall(PhoneAccountHandle, Bundle)
तरीके को कॉल करता है नया इनकमिंग कॉल, लेकिन इनकमिंग कॉल की अनुमति नहीं है (अधिक जानकारी के लिए, कॉल करने से जुड़ी शर्तें देखें). आपके ऐप्लिकेशन को चाहिए आने वाले कॉल को बिना किसी सूचना के अस्वीकार करें. इसके अलावा, सूचना देने के लिए सूचना पोस्ट करें मिस्ड कॉल के उपयोगकर्ता का है.
कनेक्शन लागू करना
आपके ऐप्लिकेशन को Connection
की एक सब-क्लास बनानी चाहिए, ताकि
अपने ऐप्लिकेशन में कॉल का प्रतिनिधित्व करते हैं. आपको
लागू करने की प्रक्रिया:
onShowIncomingCallUi()
टेलिकॉम सबसिस्टम इस तरीके को तब कॉल करता है, जब कोई नया इनकमिंग कॉल जोड़ा जाता है और आपके ऐप्लिकेशन को इनकमिंग कॉल का यूज़र इंटरफ़ेस (यूआई) दिखाना चाहिए.
onCallAudioStateChanged(CallAudioState)
टेलिकॉम सबसिस्टम इस तरीके को कॉल करके, आपके ऐप्लिकेशन को यह बताता है कि मौजूदा ऑडियो रूट या मोड बदल गया है. यह तब कहा जाता है, जब आपका ऐप्लिकेशन
setAudioRoute(int)
का इस्तेमाल करने वाला ऑडियो मोड तरीका. अगर सिस्टम, ऑडियो रूट को बदलता है, तब भी इस तरीके को कॉल किया जा सकता है (उदाहरण के लिए, ब्लूटूथ हेडसेट डिसकनेक्ट होने पर).onHold()
टेलीकॉम सबसिस्टम इस तरीके को तब कॉल करता है, जब वह कॉल को होल्ड पर रखना चाहता है. इस अनुरोध के प्रतिसाद में, आपके एप्लिकेशन को कॉल को होल्ड पर रखना चाहिए और फिर सिस्टम को सूचना देने का
setOnHold()
तरीका कि कॉल होल्ड पर है. टेलीकॉम सबसिस्टम इस तरीके को तब कॉल कर सकता है, जब कोई इन-कॉल सेवा, जैसे कि Android Auto, जो यह दिखाती है कि आपको कॉल के दौरान कॉल को होल्ड पर रखने के लिए किसी उपयोगकर्ता के अनुरोध को आगे भेजना. टेलिकॉम सबसिस्टम, इस तरीके का इस्तेमाल तब ही किया जा सकता है, जब उपयोगकर्ता किसी दूसरे ऐप्लिकेशन में कॉल करता है. ज़्यादा के लिए कॉल के दौरान उपलब्ध सेवाओं के बारे में जानकारी,InCallService
देखें.onUnhold()
टेलीकॉम सबसिस्टम इस तरीके को तब कॉल करता है, जब वह होल्ड पर रखे गए कॉल को फिर से शुरू करना चाहता है. ऐप्लिकेशन को फिर से चालू करने के बाद कॉल है, तो उसे
setActive()
शुरू करना चाहिए का उपयोग करके सिस्टम को सूचित किया जाएगा कि कॉल अब होल्ड पर नहीं है. टेलिकॉम सबसिस्टम इस तरीके को तब कॉल कर सकता है, जब कॉल के दौरान सेवा, जैसे कि Android Auto जो आपका कॉल दिखा रहा है वह कॉल को फिर से शुरू करने के लिए एक अनुरोध को रिले करना चाहता है. इसके लिए कॉल के दौरान उपलब्ध सेवाओं के बारे में ज़्यादा जानकारी पाने के लिए,InCallService
पर जाएं.onAnswer()
टेलीकॉम सबसिस्टम, सूचना देने के इस तरीके का इस्तेमाल करता है कॉल का जवाब दिया जाना चाहिए. ऐप्लिकेशन पर जवाब देने के बाद कॉल है, तो उसे
setActive()
शुरू करना चाहिए कॉल का जवाब दिया जा चुका है. टेलिकॉम सबसिस्टम इस तरीके को तब कॉल कर सकता है, जब आपका ऐप्लिकेशन नया इनकमिंग कॉल जोड़ता है और किसी दूसरे ऐप्लिकेशन में पहले से ही कोई कॉल चल रहा है, जिसे होल्ड पर नहीं रखा जा सकता. टेलिकॉम सबसिस्टम आपके ऐप्लिकेशन की ओर से इनकमिंग कॉल का यूज़र इंटरफ़ेस (यूआई) दिखाता है इन मामलों में. फ़्रेमवर्क एक ओवरलोडेड तरीका देता है, जो का इस्तेमाल करें. ज़्यादा के लिए जानकारी,onAnswer(int)
देखें.onReject()
टेलिकॉम सबसिस्टम इस तरीके को तब कॉल करता है, जब वह किसी इनकमिंग कॉल को अस्वीकार करना चाहता है कॉल. जब आपका ऐप्लिकेशन कॉल अस्वीकार कर देगा, तो उसे
setDisconnected(DisconnectCause)
को कॉल करना चाहिए औरREJECTED
को पैरामीटर के तौर पर बताना चाहिए. आपके ऐप्लिकेशन को चाहिए इसके बाद, सूचना देने के लिएdestroy()
तरीके को कॉल करें ऐप्लिकेशन ने कॉल को प्रोसेस किया था. टेलीकॉम सबसिस्टम कॉल इस तरीके का इस्तेमाल तब ही किया जा सकता है, जब उपयोगकर्ता आपके ऐप्लिकेशन से आने वाले कॉल को अस्वीकार कर देता है.onDisconnect()
टेलीकॉम सबसिस्टम इस तरीके को तब कॉल करता है, जब वह किसी कॉल को डिसकनेक्ट करना चाहता है. कॉल खत्म होने के बाद, आपके ऐप्लिकेशन को
setDisconnected(DisconnectCause)
तरीके को कॉल करना चाहिए. साथ ही,LOCAL
को पैरामीटर के तौर पर तय करना चाहिए, ताकि यह पता चल सके कि उपयोगकर्ता के अनुरोध की वजह से कॉल डिसकनेक्ट हो गया. इसके बाद, आपका ऐप्लिकेशन टेलीकॉम को सूचित करने काdestroy()
तरीका ऐप्लिकेशन के कॉल को प्रोसेस करने वाला सबसिस्टम. सिस्टम इस तरीके को कॉल कर सकता है जब उपयोगकर्ता ने कॉल के दौरान उपलब्ध किसी दूसरी सेवा के ज़रिए कॉल डिसकनेक्ट कर दिया है, जैसे कि Android Auto. सिस्टम इस तरीके को तब भी कॉल करता है, जब आपका कॉल अन्य कॉल करने के लिए डिसकनेक्ट किया जा सकता है. उदाहरण के लिए, अगर उपयोगकर्ता चाहता है कि आपातकालीन कॉल करने के लिए. कॉल के दौरान उपलब्ध सेवाओं के बारे में ज़्यादा जानने के लिए, यहां देखेंInCallService
.
कॉल करने की सामान्य स्थितियों को मैनेज करना
अपने कॉल में ConnectionService
एपीआई का इस्तेमाल करना
फ़्लो में android.telecom
की अन्य क्लास से इंटरैक्ट करना शामिल होता है
पैकेज. यहां दिए सेक्शन में, कॉल करने की आम स्थितियों के बारे में बताया गया है. साथ ही,
ऐप्लिकेशन को इन्हें हैंडल करने के लिए एपीआई का इस्तेमाल करना चाहिए.
इनकमिंग कॉल का उत्तर दें
इनकमिंग कॉल को मैनेज करने का फ़्लो यह बदल जाता है कि क्या दूसरे ऐप्लिकेशन में कॉल किए जा रहे हैं या नहीं. फ़्लो अलग-अलग होने की वजह यह है कि टेलिकॉम फ़्रेमवर्क करने के लिए अन्य ऐप्लिकेशन में सक्रिय कॉल होने पर कुछ प्रतिबंध सेट करना ज़रूरी है पक्का करें कि डिवाइस पर कॉल करने वाले सभी ऐप्लिकेशन के लिए एक जैसा माहौल रहे. ज़्यादा के लिए जानकारी के लिए, कॉल करने से जुड़ी शर्तें देखें.
दूसरे ऐप्लिकेशन से कोई कॉल नहीं किया जा रहा है
अन्य ऐप्लिकेशन में कोई ऐक्टिव कॉल न होने पर, इनकमिंग कॉल का जवाब देने के लिए, फ़ॉलो करें यह तरीका अपनाएं:
- आपके ऐप्लिकेशन को नया इनकमिंग कॉल मिलता है. हालांकि, इसके लिए वे अपने सामान्य तरीके का इस्तेमाल करते हैं.
addNewIncomingCall(PhoneAccountHandle, Bundle)
तरीके का इस्तेमाल करके, नए इनकमिंग कॉल के बारे में टेलीकॉम सबसिस्टम को सूचित करेगा.- टेलिकॉम सबसिस्टम आपके ऐप्लिकेशन के
ConnectionService
को लागू करता है और एक नए इंस्टेंस का अनुरोध करता है नई इनकमिंग को दर्शाने वालीConnection
क्लास का कॉल करने के लिए,onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
तरीके का इस्तेमाल करें. - टेलिकॉम सबसिस्टम, आपके ऐप्लिकेशन को सूचना देता है कि उसे इनकमिंग कॉल की जानकारी दिखानी चाहिए
यूज़र इंटरफ़ेस का डेटा इकट्ठा करने के लिए
onShowIncomingCallUi()
तरीके का इस्तेमाल करना होगा. - आपका ऐप्लिकेशन,
फ़ुल-स्क्रीन पर सूचनाएं दिखाने की अनुमति दें. ज़्यादा जानकारी के लिए,
onShowIncomingCallUi()
देखें. setActive()
तरीके को कॉल करें, अगर उपयोगकर्ता आने वाले कॉल को स्वीकार करता है याsetDisconnected(DisconnectCause)
,REJECTED
को पैरामीटर के तौर पर डालकर,destroy()
तरीके को कॉल करने की सुविधा, अगर उपयोगकर्ता इनकमिंग कॉल को अस्वीकार कर देता है.
दूसरे ऐप्लिकेशन में चल रहे ऐसे कॉल जिन्हें होल्ड पर नहीं रखा जा सकता
इनकमिंग कॉल का जवाब देने के लिए, जब दूसरे ऐप्लिकेशन में ऐसे कॉल का जवाब दिया जा रहा हो जो उसे होल्ड पर रख सकता है, तो इन चरणों का पालन करें:
- आपके ऐप्लिकेशन को नया इनकमिंग कॉल मिलता है. हालांकि, इसके लिए वे अपने सामान्य तरीके का इस्तेमाल करते हैं.
addNewIncomingCall(PhoneAccountHandle, Bundle)
तरीके का इस्तेमाल करके, नए इनकमिंग कॉल के बारे में टेलीकॉम सबसिस्टम को सूचित करेगा.- टेलिकॉम सबसिस्टम आपके ऐप्लिकेशन के
ConnectionService
को लागू करता है और एक नए इंस्टेंस का अनुरोध करता हैConnection
ऑब्जेक्ट में से, जो नए ऑब्जेक्ट को दिखा रहा हैonCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)
तरीके से इनकमिंग कॉल. - टेलिकॉम सबसिस्टम आपके इनकमिंग कॉल के लिए इनकमिंग कॉल का यूज़र इंटरफ़ेस (यूआई) दिखाता है.
- अगर उपयोगकर्ता कॉल स्वीकार करता है, तो टेलिकॉम सबसिस्टम
onAnswer()
तरीके को कॉल करता है. टेलीकॉम नेटवर्क से संपर्क करने के लिए, आपकोsetActive()
तरीके को कॉल करना चाहिए सबसिस्टम, जहां से कॉल कनेक्ट किया गया है. - अगर उपयोगकर्ता कॉल अस्वीकार कर देता है, तो टेलिकॉम सबसिस्टम
onReject()
तरीके को कॉल करता है. आपकोsetDisconnected(DisconnectCause)
तरीके को कॉल करना चाहिए, जिसमेंREJECTED
को पैरामीटर के तौर पर शामिल किया गया है. इसके बाद,destroy()
तरीके को कॉल करें.
आउटगोइंग कॉल करें
आउटगोइंग कॉल करने के फ़्लो में यह संभावना मैनेज की जाती है कि टेलिकॉम फ़्रेमवर्क की ओर से लगाई गई पाबंदियों की वजह से, कॉल नहीं किया जा सकता. ज़्यादा जानकारी के लिए, कॉल करने से जुड़ी शर्तें देखें.
आउटगोइंग कॉल करने के लिए, यह तरीका अपनाएं:
- उपयोगकर्ता आपके ऐप्लिकेशन में आउटगोइंग कॉल शुरू करता है.
placeCall(Uri, Bundle)
तरीके का इस्तेमाल करके नए आउटगोइंग कॉल के बारे में टेलीकॉम सबसिस्टम. इन्हें लें इन बातों पर ध्यान दें:Uri
पैरामीटर वह पता दिखाता है जहां कॉल किया जा रहा है. सामान्य फ़ोन नंबर के लिए,tel:
यूआरआई का इस्तेमाल करें स्कीम.Bundle
पैरामीटर की मदद से, यह जानकारी दी जा सकती हैEXTRA_PHONE_ACCOUNT_HANDLE
अतिरिक्त में अपने ऐप्लिकेशन केPhoneAccountHandle
ऑब्जेक्ट को जोड़कर, कॉल करने की सुविधा देने वाले ऐप्लिकेशन के बारे में जानकारी पाएं. आपका ऐप्लिकेशन को हर आउटगोइंग कॉल के लिएPhoneAccountHandle
ऑब्जेक्ट देना होगा.Bundle
पैरामीटर की मदद से, यह भी तय किया जा सकता है कि आउटगोइंग कॉल में वीडियो शामिल होता है. इसके लिए,EXTRA_START_CALL_WITH_VIDEO_STATE
के अतिरिक्त विकल्प मेंSTATE_BIDIRECTIONAL
वैल्यू बताई जाती है. ध्यान रखें कि डिफ़ॉल्ट रूप से, टेलीकॉम सबसिस्टम, वीडियो कॉल को स्पीकरफ़ोन.
- टेलिकॉम सबसिस्टम आपके ऐप्लिकेशन के
ConnectionService
से जुड़ा होता है लागू करना. - अगर आपके ऐप्लिकेशन से आउटगोइंग कॉल नहीं किया जा सकता, तो टेलीकॉम सबसिस्टम कॉल
onCreateOutgoingConnectionFailed(PhoneAccountHandle, ConnectionRequest)
तरीका अपने ऐप्लिकेशन को बताएं कि इस समय कॉल नहीं किया जा सकता. आपका ऐप्लिकेशन उपयोगकर्ता को सूचित करना चाहिए कि कॉल नहीं किया जा सकता. - अगर आपके ऐप्लिकेशन से आउटगोइंग कॉल किया जा सकता है, तो टेलीकॉम सबसिस्टम कॉल
onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest)
तरीका. नया आउटगोइंग कॉल दिखाने के लिए, आपके ऐप्लिकेशन को आपकीConnection
क्लास का इंस्टेंस दिखाना चाहिए. इसके लिए कनेक्शन में सेट की जाने वाली प्रॉपर्टी के बारे में ज़्यादा जानकारी के लिए, कनेक्शन सेवा लागू करना देखें. - आउटगोइंग कॉल कनेक्ट हो जाने पर,
setActive()
तरीके को कॉल करके टेलीकॉम सबसिस्टम को सूचना दें कि कॉल सक्रिय है.
कॉल ख़त्म करना
कॉल खत्म करने के लिए, यह तरीका अपनाएं:
LOCAL
को भेजने वालेsetDisconnected(DisconnectCause)
को पैरामीटर के रूप में कॉल करें, अगर उपयोगकर्ता कॉल खत्म हो गया याREMOTE
भेजें का इस्तेमाल पैरामीटर के तौर पर तब करें, जब दूसरे पक्ष ने कॉल खत्म कर दिया हो.destroy()
तरीके को कॉल करें.
कॉलिंग कंस्ट्रेंट
यह पक्का करने के लिए कि आपके उपयोगकर्ताओं को एक जैसा और आसान कॉल करने का अनुभव मिले, टेलिकॉम
फ़्रेमवर्क, डिवाइस पर कॉल मैनेज करने के लिए कुछ पाबंदियां लागू करता है. इसके लिए
उदाहरण के लिए, मान लीजिए कि उपयोगकर्ता ने कॉल करने के लिए दो ऐप्लिकेशन इंस्टॉल किए हैं
सेल्फ़-मैनेज किया जा रहा ConnectionService
API, FooTalk और
BarTalk. इस मामले में, कॉन्टेंट पर ये पाबंदियां लागू होती हैं:
एपीआई लेवल 27 या इससे पहले के लेवल पर चल रहे डिवाइसों पर, सिर्फ़ एक ऐप्लिकेशन किसी भी समय पर चल रही कॉल. इस कंस्ट्रेंट का मतलब है कि जब किसी उपयोगकर्ता के पास जब आप FooTalk ऐप्लिकेशन इस्तेमाल कर रहे हों, तब BarTalk ऐप्लिकेशन, कॉल शुरू नहीं कर सकता या उसे कॉल नहीं कर सकता कॉल करें.
एपीआई लेवल 28 या उसके बाद के लेवल वाले डिवाइसों पर, अगर FooTalk और BarTalk दोनों एलान करें
CAPABILITY_SUPPORT_HOLD
औरCAPABILITY_HOLD
अनुमतियां दी हैं, तो उपयोगकर्ता एक बार में एक से ज़्यादा कॉल को बनाए रख सकता है दूसरी कॉल करने या उस कॉल का जवाब देने के लिए, एक ऐप्लिकेशन से दूसरे ऐप्लिकेशन पर स्विच करना.अगर उपयोगकर्ता, मैनेज किए जाने वाले सामान्य कॉल में शामिल है (उदाहरण के लिए, पहले से मौजूद फ़ोन या डायलर ऐप्लिकेशन), तो उपयोगकर्ता उन कॉल में शामिल नहीं हो सकते जो इनसे किए गए हैं कॉलिंग ऐप्लिकेशन. इसका यह अर्थ है कि अगर उपयोगकर्ता अपने मोबाइल और इंटरनेट सेवा देने वाली कंपनी के साथ, वे एक साथ FooTalk या BarTalk कॉल में नहीं शामिल हो सकते.
अगर उपयोगकर्ता कोई आपातकालीन कॉल.
जब उपयोगकर्ता आपातकालीन कॉल में हो, तब आपका ऐप्लिकेशन न तो कॉल रिसीव कर सकता है और न ही कर सकता है.
अगर आपके ऐप्लिकेशन को कॉल करने के बाद, किसी दूसरे ऐप्लिकेशन में पहले से कॉल चल रहा है इनकमिंग कॉल, इनकमिंग कॉल का जवाब देने से अन्य ऐप्लिकेशन. आपके ऐप्लिकेशन को आम तौर पर, इनकमिंग कॉल का यूज़र इंटरफ़ेस नहीं दिखाना चाहिए. टेलिकॉम फ़्रेमवर्क, इनकमिंग कॉल का यूज़र इंटरफ़ेस दिखाता है. साथ ही, नए कॉल का जवाब देने वाला उपयोगकर्ता, मौजूदा कॉल को खत्म कर देगा. यह इसका मतलब है कि अगर उपयोगकर्ता FooTalk कॉल में है और BarTalk ऐप्लिकेशन को इनकमिंग कॉल के लिए इस्तेमाल किया जाता है, तो टेलिकॉम फ़्रेमवर्क उपयोगकर्ता को बताता है कि उनके पास नया इनकमिंग BarTalk कॉल और BarTalk कॉल का जवाब देने से उनका FooTalk कॉल.