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

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 के साथ अलग-अलग तरीकों का इस्तेमाल करने के उदाहरण नीचे दिए गए हैं सूचना पर टैप करें.

Kotlin

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

Java

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

आने वाला (इनकमिंग) कॉल

किसीforIncomingCall() इनकमिंग कॉल.

Kotlin

// 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)

Java

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

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

किसीforOngoingCall() कॉल चल रहा है.

Kotlin

// 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)

Java

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

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

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

Kotlin

// 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)

Java

// Create a call style notification for screening a call.
Notification.Builder builder = new 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 का इस्तेमाल करें. ज़्यादा जानकारी के लिए, यह देखें टेलीकॉम फ़्रेमवर्क की खास जानकारी.