कॉल दिलाने वाले ऐप्लिकेशन के लिए, कॉल स्टाइल की सूचना बनाएं

Android 12.0 (एपीआई लेवल 31) और उसके बाद के वर्शन में, सिस्टम CallStyle सूचना टेंप्लेट उपलब्ध कराता है. इससे कॉल की सूचनाओं को अन्य तरह की सूचनाओं से अलग किया जा सकता है. इस टेंप्लेट का इस्तेमाल करके, इनकमिंग या पहले से जारी कॉल की सूचनाएं बनाई जा सकती हैं. इस टेंप्लेट से, बड़े फ़ॉर्मैट वाली सूचनाएं बनाई जा सकती हैं. इनमें कॉल करने वाले की जानकारी और ज़रूरी कार्रवाइयां शामिल होती हैं. जैसे, कॉल का जवाब देना या उसे काटना.

इनकमिंग और पहले से जारी कॉल, ज़्यादा प्राथमिकता वाले इवेंट होते हैं. इसलिए, इन सूचनाओं को सूचना शेड में सबसे ज़्यादा प्राथमिकता मिलती है. इस रैंकिंग की वजह से, सिस्टम इन प्राथमिकता वाली कॉल को अन्य डिवाइसों पर फ़ॉरवर्ड कर पाता है.

CallStyle सूचना टेंप्लेट में, ये ज़रूरी कार्रवाइयां शामिल होती हैं:

  • इनकमिंग कॉल के लिए, जवाब दें या काटें.
  • पहले से जारी कॉल के लिए, कॉल काटें.
  • कॉल स्क्रीन करने के लिए, जवाब दें या कॉल काटें.

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

लेबल वाले बटन के साथ कॉल स्टाइल की सूचनाएं
पहला डायग्राम. इनकमिंग और पहले से जारी कॉल के लिए, CallStyle टेंप्लेट.

ज़रूरी कार्रवाइयों को इंटेंट के तौर पर पास किया जाता है. जैसे, यहां दिए गए सेक्शन में hangupIntent और answerIntent. इनमें से हर एक, सिस्टम की ओर से बनाए गए टोकन का रेफ़रंस होता है. टोकन, एक हल्का ऑब्जेक्ट होता है. इसे अलग-अलग ऐप्लिकेशन और प्रोसेस के बीच पास किया जा सकता है. टोकन के लाइफ़टाइम को मैनेज करने की ज़िम्मेदारी सिस्टम की होती है. साथ ही, यह पक्का करना भी सिस्टम की ज़िम्मेदारी होती है कि PendingIntent का इस्तेमाल किया जा सके. भले ही, इसे बनाने वाला ऐप्लिकेशन अब न चल रहा हो. जब किसी दूसरे ऐप्लिकेशन को PendingIntent दिया जाता है, तो उसे तय की गई कार्रवाई करने की अनुमति मिल जाती है. जैसे, कॉल काटना या जवाब देना. यह अनुमति तब भी मिलती है, जब इंटेंट बनाने वाला ऐप्लिकेशन न चल रहा हो. ज़्यादा जानकारी के लिए, रेफ़रंस वाला दस्तावेज़ देखें PendingIntent.

Android 14 (एपीआई लेवल 34) से, कॉल की सूचनाओं को हटाया नहीं जा सकेगा. इसके लिए, CallStyle सूचनाओं का इस्तेमाल करें. साथ ही, Notification.FLAG_ONGOING_EVENT को Notification.Builder#setOngoing(true) के ज़रिए इस्तेमाल करें.

CallStyle सूचना के साथ अलग-अलग तरीकों का इस्तेमाल करने के उदाहरण यहां दिए गए हैं.

  // Create a new call, setting the user as the caller.
  val incomingCaller = Person.Builder()
      .setName("Jane Doe")
      .setImportant(true)
      .build()

इनकमिंग कॉल

इनकमिंग कॉल के लिए, कॉल स्टाइल वाली सूचना बनाने के लिए, forIncomingCall() तरीके का इस्तेमाल करें.

  // Create a call style notification for an incoming call.
  val builder = Notification.Builder(context, CHANNEL_ID)
      .setContentIntent(contentIntent)
      .setSmallIcon(smallIcon)
      .setStyle(
           Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
      .addPerson(incomingCaller)

पहले से जारी कॉल

पहले से जारी कॉल के लिए, कॉल स्टाइल वाली सूचना बनाने के लिए, forOngoingCall() तरीके का इस्तेमाल करें.

  // Create a call style notification for an ongoing call.
  val builder = Notification.Builder(context, CHANNEL_ID)
      .setContentIntent(contentIntent)
      .setSmallIcon(smallIcon)
      .setStyle(
           Notification.CallStyle.forOngoingCall(caller, hangupIntent))
      .addPerson(second_caller)

कॉल स्क्रीन करना

कॉल स्क्रीन करने के लिए, कॉल स्टाइल वाली सूचना बनाने के लिए, forScreeningCall() तरीके का इस्तेमाल करें.

  // Create a call style notification for screening a call.
  val builder = Notification.Builder(context, CHANNEL_ID)
      .setContentIntent(contentIntent)
      .setSmallIcon(smallIcon)
      .setStyle(
           Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
      .addPerson(second_caller)

Android के ज़्यादा वर्शन के साथ काम करने की सुविधा उपलब्ध कराना

एपीआई वर्शन 30 या उससे पहले के वर्शन पर, CallStyle सूचनाओं को फ़ोरग्राउंड सेवा से जोड़ें. इससे, उन्हें एपीआई लेवल 31 या उसके बाद के वर्शन में मिलने वाली ज़्यादा प्राथमिकता दी जा सके. इसके अलावा, एपीआई वर्शन 30 या उससे पहले के वर्शन पर, CallStyle सूचनाओं को भी इसी तरह की रैंकिंग मिल सकती है. इसके लिए, सूचना को रंगीन के तौर पर मार्क करें. इसके लिए, setColorized() तरीके का इस्तेमाल करें.

CallStyle सूचनाओं के साथ, Telecom API का इस्तेमाल करें. ज़्यादा जानकारी के लिए, Telecom फ़्रेमवर्क की खास जानकारी देखें.