कॉल के लिए इस्तेमाल होने वाला ऐप्लिकेशन बनाएं

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


कॉल करने के लिए इस्तेमाल किए जाने वाले ऐप्लिकेशन का उदाहरण अपने यूज़र इंटरफ़ेस का इस्तेमाल करके, कॉल करने की सुविधा देने वाले ऐप्लिकेशन का उदाहरण

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 की अन्य क्लास से इंटरैक्ट करना शामिल होता है पैकेज. यहां दिए सेक्शन में, कॉल करने की आम स्थितियों के बारे में बताया गया है. साथ ही, ऐप्लिकेशन को इन्हें हैंडल करने के लिए एपीआई का इस्तेमाल करना चाहिए.

इनकमिंग कॉल का उत्तर दें

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

दूसरे ऐप्लिकेशन से कोई कॉल नहीं किया जा रहा है

अन्य ऐप्लिकेशन में कोई ऐक्टिव कॉल न होने पर, इनकमिंग कॉल का जवाब देने के लिए, फ़ॉलो करें यह तरीका अपनाएं:

  1. आपके ऐप्लिकेशन को नया इनकमिंग कॉल मिलता है. हालांकि, इसके लिए वे अपने सामान्य तरीके का इस्तेमाल करते हैं.
  2. addNewIncomingCall(PhoneAccountHandle, Bundle) तरीके का इस्तेमाल करके, नए इनकमिंग कॉल के बारे में टेलीकॉम सबसिस्टम को सूचित करेगा.
  3. टेलिकॉम सबसिस्टम आपके ऐप्लिकेशन के ConnectionService को लागू करता है और एक नए इंस्टेंस का अनुरोध करता है नई इनकमिंग को दर्शाने वाली Connection क्लास का कॉल करने के लिए, onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest) तरीके का इस्तेमाल करें.
  4. टेलिकॉम सबसिस्टम, आपके ऐप्लिकेशन को सूचना देता है कि उसे इनकमिंग कॉल की जानकारी दिखानी चाहिए यूज़र इंटरफ़ेस का डेटा इकट्ठा करने के लिए onShowIncomingCallUi() तरीके का इस्तेमाल करना होगा.
  5. आपका ऐप्लिकेशन, फ़ुल-स्क्रीन पर सूचनाएं दिखाने की अनुमति दें. ज़्यादा जानकारी के लिए, onShowIncomingCallUi() देखें.
  6. setActive() तरीके को कॉल करें, अगर उपयोगकर्ता आने वाले कॉल को स्वीकार करता है या setDisconnected(DisconnectCause), REJECTED को पैरामीटर के तौर पर डालकर, destroy() तरीके को कॉल करने की सुविधा, अगर उपयोगकर्ता इनकमिंग कॉल को अस्वीकार कर देता है.

दूसरे ऐप्लिकेशन में चल रहे ऐसे कॉल जिन्हें होल्ड पर नहीं रखा जा सकता

इनकमिंग कॉल का जवाब देने के लिए, जब दूसरे ऐप्लिकेशन में ऐसे कॉल का जवाब दिया जा रहा हो जो उसे होल्ड पर रख सकता है, तो इन चरणों का पालन करें:

  1. आपके ऐप्लिकेशन को नया इनकमिंग कॉल मिलता है. हालांकि, इसके लिए वे अपने सामान्य तरीके का इस्तेमाल करते हैं.
  2. addNewIncomingCall(PhoneAccountHandle, Bundle) तरीके का इस्तेमाल करके, नए इनकमिंग कॉल के बारे में टेलीकॉम सबसिस्टम को सूचित करेगा.
  3. टेलिकॉम सबसिस्टम आपके ऐप्लिकेशन के ConnectionService को लागू करता है और एक नए इंस्टेंस का अनुरोध करता है Connection ऑब्जेक्ट में से, जो नए ऑब्जेक्ट को दिखा रहा है onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest) तरीके से इनकमिंग कॉल.
  4. टेलिकॉम सबसिस्टम आपके इनकमिंग कॉल के लिए इनकमिंग कॉल का यूज़र इंटरफ़ेस (यूआई) दिखाता है.
  5. अगर उपयोगकर्ता कॉल स्वीकार करता है, तो टेलिकॉम सबसिस्टम onAnswer() तरीके को कॉल करता है. टेलीकॉम नेटवर्क से संपर्क करने के लिए, आपको setActive() तरीके को कॉल करना चाहिए सबसिस्टम, जहां से कॉल कनेक्ट किया गया है.
  6. अगर उपयोगकर्ता कॉल अस्वीकार कर देता है, तो टेलिकॉम सबसिस्टम onReject() तरीके को कॉल करता है. आपको setDisconnected(DisconnectCause) तरीके को कॉल करना चाहिए, जिसमें REJECTED को पैरामीटर के तौर पर शामिल किया गया है. इसके बाद, destroy() तरीके को कॉल करें.

आउटगोइंग कॉल करें

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

आउटगोइंग कॉल करने के लिए, यह तरीका अपनाएं:

  1. उपयोगकर्ता आपके ऐप्लिकेशन में आउटगोइंग कॉल शुरू करता है.
  2. placeCall(Uri, Bundle) तरीके का इस्तेमाल करके नए आउटगोइंग कॉल के बारे में टेलीकॉम सबसिस्टम. इन्हें लें इन बातों पर ध्यान दें:
    • Uri पैरामीटर वह पता दिखाता है जहां कॉल किया जा रहा है. सामान्य फ़ोन नंबर के लिए, tel: यूआरआई का इस्तेमाल करें स्कीम.
    • Bundle पैरामीटर की मदद से, यह जानकारी दी जा सकती है EXTRA_PHONE_ACCOUNT_HANDLE अतिरिक्त में अपने ऐप्लिकेशन के PhoneAccountHandle ऑब्जेक्ट को जोड़कर, कॉल करने की सुविधा देने वाले ऐप्लिकेशन के बारे में जानकारी पाएं. आपका ऐप्लिकेशन को हर आउटगोइंग कॉल के लिए PhoneAccountHandle ऑब्जेक्ट देना होगा.
    • Bundle पैरामीटर की मदद से, यह भी तय किया जा सकता है कि आउटगोइंग कॉल में वीडियो शामिल होता है. इसके लिए, EXTRA_START_CALL_WITH_VIDEO_STATE के अतिरिक्त विकल्प में STATE_BIDIRECTIONAL वैल्यू बताई जाती है. ध्यान रखें कि डिफ़ॉल्ट रूप से, टेलीकॉम सबसिस्टम, वीडियो कॉल को स्पीकरफ़ोन.
  3. टेलिकॉम सबसिस्टम आपके ऐप्लिकेशन के ConnectionService से जुड़ा होता है लागू करना.
  4. अगर आपके ऐप्लिकेशन से आउटगोइंग कॉल नहीं किया जा सकता, तो टेलीकॉम सबसिस्टम कॉल onCreateOutgoingConnectionFailed(PhoneAccountHandle, ConnectionRequest) तरीका अपने ऐप्लिकेशन को बताएं कि इस समय कॉल नहीं किया जा सकता. आपका ऐप्लिकेशन उपयोगकर्ता को सूचित करना चाहिए कि कॉल नहीं किया जा सकता.
  5. अगर आपके ऐप्लिकेशन से आउटगोइंग कॉल किया जा सकता है, तो टेलीकॉम सबसिस्टम कॉल onCreateOutgoingConnection(PhoneAccountHandle, ConnectionRequest) तरीका. नया आउटगोइंग कॉल दिखाने के लिए, आपके ऐप्लिकेशन को आपकी Connection क्लास का इंस्टेंस दिखाना चाहिए. इसके लिए कनेक्शन में सेट की जाने वाली प्रॉपर्टी के बारे में ज़्यादा जानकारी के लिए, कनेक्शन सेवा लागू करना देखें.
  6. आउटगोइंग कॉल कनेक्ट हो जाने पर, setActive() तरीके को कॉल करके टेलीकॉम सबसिस्टम को सूचना दें कि कॉल सक्रिय है.

कॉल ख़त्म करना

कॉल खत्म करने के लिए, यह तरीका अपनाएं:

  1. LOCAL को भेजने वाले setDisconnected(DisconnectCause) को पैरामीटर के रूप में कॉल करें, अगर उपयोगकर्ता कॉल खत्म हो गया या REMOTE भेजें का इस्तेमाल पैरामीटर के तौर पर तब करें, जब दूसरे पक्ष ने कॉल खत्म कर दिया हो.
  2. destroy() तरीके को कॉल करें.

कॉलिंग कंस्ट्रेंट

यह पक्का करने के लिए कि आपके उपयोगकर्ताओं को एक जैसा और आसान कॉल करने का अनुभव मिले, टेलिकॉम फ़्रेमवर्क, डिवाइस पर कॉल मैनेज करने के लिए कुछ पाबंदियां लागू करता है. इसके लिए उदाहरण के लिए, मान लीजिए कि उपयोगकर्ता ने कॉल करने के लिए दो ऐप्लिकेशन इंस्टॉल किए हैं सेल्फ़-मैनेज किया जा रहा ConnectionService API, FooTalk और BarTalk. इस मामले में, कॉन्टेंट पर ये पाबंदियां लागू होती हैं:

  • एपीआई लेवल 27 या इससे पहले के लेवल पर चल रहे डिवाइसों पर, सिर्फ़ एक ऐप्लिकेशन किसी भी समय पर चल रही कॉल. इस कंस्ट्रेंट का मतलब है कि जब किसी उपयोगकर्ता के पास जब आप FooTalk ऐप्लिकेशन इस्तेमाल कर रहे हों, तब BarTalk ऐप्लिकेशन, कॉल शुरू नहीं कर सकता या उसे कॉल नहीं कर सकता कॉल करें.

    एपीआई लेवल 28 या उसके बाद के लेवल वाले डिवाइसों पर, अगर FooTalk और BarTalk दोनों एलान करें CAPABILITY_SUPPORT_HOLD और CAPABILITY_HOLD अनुमतियां दी हैं, तो उपयोगकर्ता एक बार में एक से ज़्यादा कॉल को बनाए रख सकता है दूसरी कॉल करने या उस कॉल का जवाब देने के लिए, एक ऐप्लिकेशन से दूसरे ऐप्लिकेशन पर स्विच करना.

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

  • अगर उपयोगकर्ता कोई आपातकालीन कॉल.

  • जब उपयोगकर्ता आपातकालीन कॉल में हो, तब आपका ऐप्लिकेशन न तो कॉल रिसीव कर सकता है और न ही कर सकता है.

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