কল অ্যাপের জন্য কল স্টাইল বিজ্ঞপ্তি তৈরি করা

Android 12.0 (API লেভেল ৩১) এবং তার পরবর্তী ভার্সনে, সিস্টেম CallStyle বিজ্ঞপ্তি টেমপ্লেট প্রদান করে যাতে কল সংক্রান্ত বিজ্ঞপ্তি অন্যান্য ধরনের বিজ্ঞপ্তি থেকে আলাদা করা যায়। ইনকামিং বা চলমান কলের বিজ্ঞপ্তি তৈরি করতে এই টেমপ্লেট ব্যবহার করুন। টেমপ্লেটটি বড়-ফর্ম্যাটের বিজ্ঞপ্তি সমর্থন করে যার মধ্যে কলারের তথ্য এবং প্রয়োজনীয় অ্যাকশন যেমন উত্তর দেওয়া বা কল প্রত্যাখ্যান করা অন্তর্ভুক্ত।

ইনকামিং ও অনগোয়িং কল অত্যন্ত গুরুত্বপূর্ণ ইভেন্ট হওয়ার কারণে, বিজ্ঞপ্তি শেডে এইসব বিজ্ঞপ্তি সবচেয়ে বেশি অগ্রাধিকার পায়। এছাড়াও, এই র‍্যাংকিং সিস্টেমকে অগ্রাধিকার দেওয়া এইসব কল অন্য ডিভাইসে ফরওয়ার্ড করার অনুমতি দেয়।

CallStyle বিজ্ঞপ্তির টেমপ্লেটে নিম্নলিখিত প্রয়োজনীয় অ্যাকশন অন্তর্ভুক্ত থাকে:

  • ইনকামিং কলের জন্য উত্তর দিন বা প্রত্যাখ্যান করুন।
  • চলমান কলের জন্য কল কেটে দিন।
  • কল স্ক্রিনিংয়ের জন্য উত্তর দিন বা কেটে দিন।

এই স্টাইলে অ্যাকশনগুলি বোতাম হিসাবে দেখানো হয়, সিস্টেম অটোমেটিক উপযুক্ত আইকন এবং টেক্সট যোগ করে। বোতামে ম্যানুয়ালি লেবেল যোগ করার সুবিধা কাজ করে না। বিজ্ঞপ্তি ডিজাইন সংক্রান্ত নীতি সম্পর্কে আরও জানতে, বিজ্ঞপ্তি দেখুন।

লেবেলযুক্ত বোতাম সহ কল স্টাইল বিজ্ঞপ্তি
ছবি ১. ইনকামিং ও আউটগোয়িং কলের জন্য CallStyle টেমপ্লেট।

প্রয়োজনীয় অ্যাকশন ইনটেন্ট হিসেবে পাস করা হয়, যেমন নিম্নলিখিত বিভাগে hangupIntent এবং answerIntent। এগুলির প্রতিটি হল সিস্টেমের মাধ্যমে ম্যানেজ করা টোকেনের রেফারেন্স। টোকেন হল একটি লাইটওয়েট অবজেক্ট যা বিভিন্ন অ্যাপ ও প্রসেসের মধ্যে পাস করা যায়। সিস্টেম টোকেনের লাইফটাইম ম্যানেজ করার জন্য এবং যে অ্যাপ এটি তৈরি করেছে সেটি আর না চললেও PendingIntent যাতে ব্যবহার করা যায় তা নিশ্চিত করার জন্য দায়ী। আপনি অন্য কোনও অ্যাপকে PendingIntent দিলে, আপনি সেটিকে নির্দিষ্ট অপারেশন করার অনুমতি দিচ্ছেন, যেমন প্রত্যাখ্যান করা বা উত্তর দেওয়া। যে অ্যাপ ইনটেন্ট তৈরি করেছে সেটি না চললেও এই অনুমতি দেওয়া হয়। আরও তথ্যের জন্য, PendingIntent-এর রেফারেন্স ডকুমেন্টেশন দেখুন।

Android 14 (API লেভেল ৩৪) থেকে শুরু করে, আপনি কল বিজ্ঞপ্তি কনফিগার করতে পারবেন যাতে তা বাতিল করা না যায়। এটি করতে, CallStyle বিজ্ঞপ্তি ব্যবহার করুন, যার সাথে Notification.FLAG_ONGOING_EVENT থেকে Notification.Builder#setOngoing(true) পর্যন্ত।

CallStyle বিজ্ঞপ্তির সাথে বিভিন্ন পদ্ধতি ব্যবহার করার উদাহরণ নিচে দেওয়া হল।

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

ইনকামিং কল

ইনকামিং কলের জন্য কল স্টাইল বিজ্ঞপ্তি তৈরি করতে forIncomingCall() পদ্ধতি ব্যবহার করুন।

// For demonstrative purposes only, should use a well-defined Intents.
val contentIntent =
    PendingIntent.getActivity(context, 0, Intent(), PendingIntent.FLAG_IMMUTABLE)
val declineIntent =
    PendingIntent.getActivity(context, 0, Intent(), PendingIntent.FLAG_IMMUTABLE)
val hangupIntent = PendingIntent.getActivity(context, 0, Intent(), PendingIntent.FLAG_IMMUTABLE)
val answerIntent = PendingIntent.getActivity(context, 0, Intent(), PendingIntent.FLAG_IMMUTABLE)
// Create a call style notification for an incoming call.
val builderForIncomingCall = NotificationCompat.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(R.drawable.ic_logo)
    .setStyle(
        NotificationCompat.CallStyle.forIncomingCall(incomingCaller, declineIntent, answerIntent))
    .addPerson(incomingCaller)

চালু থাকা কল

চলমান কলের জন্য কল স্টাইল বিজ্ঞপ্তি তৈরি করতে forOngoingCall() পদ্ধতি ব্যবহার করুন।

// Create a call style notification for an ongoing call.
val builderForOngoingCall = NotificationCompat.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(R.drawable.ic_logo)
    .setStyle(
        NotificationCompat.CallStyle.forOngoingCall(callerAtOtherEnd, hangupIntent))
    .addPerson(caller)

কল স্ক্রিন করা

কল স্ক্রিনিংয়ের জন্য কল স্টাইল বিজ্ঞপ্তি তৈরি করতে forScreeningCall() পদ্ধতি ব্যবহার করুন।

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

আরও Android ভার্সন জুড়ে কম্প্যাটিবিলিটি প্রদান করা

API লেভেল ৩১ বা তার পরবর্তী ভার্সনে দেওয়া উচ্চ র‍্যাঙ্ক অ্যাসাইন করার জন্য API ভার্সন ৩০ বা তার আগের ভার্সনে CallStyle বিজ্ঞপ্তিগুলি ফোরগ্রাউন্ড পরিষেবার সাথে যুক্ত করুন। এছাড়াও, API ভার্সন ৩০ বা তার আগের ভার্সনে CallStyle বিজ্ঞপ্তি setColorized() পদ্ধতি ব্যবহার করে বিজ্ঞপ্তিটিকে রঙিন হিসেবে চিহ্নিত করার মাধ্যমে একই ধরনের র‍্যাঙ্কিং অর্জন করতে পারে।

CallStyle বিজ্ঞপ্তির সাথে Telecom API ব্যবহার করুন। আরও তথ্যের জন্য, টেলিকম ফ্রেমওয়ার্ক ওভারভিউ দেখুন।