Android 12.0 (API লেভেল 31) ও তার পরের যেকোনও ভার্সনে, সিস্টেম কল বিজ্ঞপ্তি ও
অন্যান্য ধরনের বিজ্ঞপ্তির মধ্যে পার্থক্য করতে
CallStyle বিজ্ঞপ্তি টেমপ্লেট প্রদান করে। ইনকামিং বা
চলমান কল বিজ্ঞপ্তি তৈরি করতে এই টেমপ্লেট ব্যবহার করুন। এই টেমপ্লেটে কলারের তথ্য ও কল রিসিভ বা
বাতিল করার মতো প্রয়োজনীয় অ্যাকশন সহ বড় ফর্ম্যাটের বিজ্ঞপ্তি
দেখানো যায়।
ইনকামিং ও অনগোয়িং কল হল অত্যন্ত গুরুত্বপূর্ণ ইভেন্ট, তাই এইসব বিজ্ঞপ্তি বিজ্ঞপ্তি শেডে সবচেয়ে বেশি অগ্রাধিকার পায়। এই র্যাংকিংয়ের ফলে সিস্টেম এইসব অগ্রাধিকারপ্রাপ্ত কল অন্য ডিভাইসে ফরওয়ার্ড করতে পারে।
CallStyle বিজ্ঞপ্তি টেমপ্লেটে নিম্নলিখিত প্রয়োজনীয় অ্যাকশন অন্তর্ভুক্ত থাকে:
- ইনকামিং কলের জন্য উত্তর দিন বা প্রত্যাখ্যান করুন।
- চলমান কলের জন্য কল কেটে দিন।
- কল স্ক্রিনিংয়ের জন্য উত্তর দাও বা কল কেটে দাও।
এই স্টাইলের অ্যাকশন বোতাম হিসেবে দেখানো হয় এবং সিস্টেম অটোমেটিক উপযুক্ত আইকন ও টেক্সট যোগ করে। বোতামে ম্যানুয়ালি লেবেল যোগ করা যায় না। বিজ্ঞপ্তির ডিজাইন সংক্রান্ত নীতি সম্পর্কে আরও জানতে, বিজ্ঞপ্তি দেখুন।
প্রয়োজনীয় অ্যাকশনগুলি ইনটেন্ট হিসেবে পাস করা হয়, যেমন, নিম্নলিখিত বিভাগে hangupIntent এবং
answerIntent। এগুলির প্রত্যেকটিই সিস্টেমের দ্বারা
পরিচালিত টোকেনের রেফারেন্স। টোকেন হল একটি হালকা ওজনের অবজেক্ট যা
বিভিন্ন অ্যাপ ও প্রসেসের মধ্যে পাস করা যায়। টোকেনের মেয়াদ ম্যানেজ করা এবং এটি নিশ্চিত করা যে
PendingIntent তৈরি করা অ্যাপ আর
চলমান না থাকলেও এটি ব্যবহারযোগ্য, এই দায়িত্ব সিস্টেমের। আপনি অন্য কোনও অ্যাপকে PendingIntent দিলে, আপনি
সেটিকে নির্দিষ্ট অপারেশন পারফর্ম করার অনুমতি দিচ্ছেন, যেমন প্রত্যাখ্যান করা বা উত্তর দেওয়া।
ইনটেন্ট তৈরি করা অ্যাপটি চালু না থাকলেও এই অনুমতি দেওয়া হয়।
আরও তথ্যের জন্য, PendingIntent-এর রেফারেন্স ডকুমেন্টেশন দেখুন।
Android 14 (API লেভেল 34) থেকে শুরু করে, আপনি কল বিজ্ঞপ্তি
এমনভাবে কনফিগার করতে পারবেন যাতে সেগুলি ডিসমিস করা না যায়। এটি করতে, 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 ভার্সন ৩০ বা তার আগের ভার্সনে CallStyle বিজ্ঞপ্তিগুলিকে API লেভেল ৩১ বা তার পরের ভার্সনে
প্রদান করা উচ্চ র্যাঙ্ক অ্যাসাইন করার জন্য
ফোরগ্রাউন্ড পরিষেবার সাথে অ্যাসোসিয়েট করুন। এছাড়াও, API ভার্সন 30
বা এর আগের ভার্সনে থাকা CallStyle বিজ্ঞপ্তিগুলিকে
setColorized() পদ্ধতি ব্যবহার করে কালারাইজড হিসেবে চিহ্নিত করার মাধ্যমে একই ধরনের র্যাঙ্কিং পাওয়া যেতে পারে।
CallStyle বিজ্ঞপ্তি সহ Telecom API ব্যবহার করুন। আরও তথ্যের জন্য, টেলিকম ফ্রেমওয়ার্কের ওভারভিউ দেখুন।