লাইভ আপডেট বিজ্ঞপ্তি তৈরি করুন

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

চিত্র ১. লাইভ আপডেট নোটিফিকেশনের একটি উদাহরণ।

পদোন্নতির বিজ্ঞপ্তি কার্ডগুলোর নিম্নলিখিত বাহ্যিক বৈশিষ্ট্য রয়েছে:

  • ডিফল্টরূপে প্রসারিত
  • অসংকোচনশীল

লাইভ আপডেট হিসেবে গণ্য হওয়ার জন্য আপনার নোটিফিকেশনটিকে নিম্নলিখিত শর্তগুলো পূরণ করতে হবে:

প্রচারের বৈশিষ্ট্য

নিম্নলিখিত API-গুলো আপনাকে নির্ধারণ করতে সাহায্য করে যে সিস্টেমটি আপনার নোটিফিকেশনটি প্রচার করবে কিনা:

  • Notification.FLAG_PROMOTED_ONGOING নির্দেশ করে যে নোটিফিকেশনটি উন্নীত হয়েছে কিনা।
  • Notification.hasPromotableCharacteristics() যাচাই করে যে সিস্টেম নোটিফিকেশনটি প্রচার করতে পারবে কি না। ব্যবহারকারী সেটিংসে অ্যাপটির জন্য লাইভ আপডেট নিষ্ক্রিয় করেছেন কি না, তা এই পদ্ধতিটি বিবেচনা করে না।
  • NotificationManager.canPostPromotedNotifications() যাচাই করে দেখে যে আপনার অ্যাপ একটি প্রোমোটেড নোটিফিকেশন পোস্ট করতে পারবে কি না, যেমন—ব্যবহারকারী সেটিংসে এটি চালু বা বন্ধ করেছে কি না।
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS হলো সেই ইন্টেন্ট অ্যাকশন যা অ্যাপগুলোকে এই ফিচারটি চালু করার জন্য ব্যবহারকারীদের সেটিংসে পাঠাতে দেয়।

ব্যবহারের মানদণ্ড

চলমান, ব্যবহারকারী-প্রবর্তিত এবং সময়-সংবেদনশীল কার্যকলাপের জন্য লাইভ আপডেট ব্যবহার করুন।

চিত্র ২. আপনার হোম ও লক স্ক্রিনে একটি লাইভ আপডেট, এবং একটি চিপ হিসেবে।

চলমান

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

লাইভ আপডেট চলমান কার্যক্রমকে নির্দেশ করে। অ্যাপের কার্যকারিতায় দ্রুত অ্যাক্সেস দেওয়ার জন্য লাইভ আপডেট ব্যবহার করবেন না। যদি আপনি এটি করতে চান, তাহলে একটি অ্যাপ উইজেট বা কাস্টম কুইক সেটিংস টাইল ব্যবহার করুন।

  • উপযুক্ত ব্যবহারসমূহ: সক্রিয় নেভিগেশন, চলমান ফোন কল, সক্রিয় রাইডশেয়ার ট্র্যাকিং, এবং সক্রিয় ফুড ডেলিভারি ট্র্যাকিং।
  • অনুপযুক্ত ব্যবহার: বিজ্ঞাপন, প্রচারমূলক অফার, চ্যাট বার্তা, সতর্কতা, আসন্ন ক্যালেন্ডার ইভেন্ট এবং অ্যাপের ফিচারগুলিতে দ্রুত অ্যাক্সেস।

ব্যবহারকারী-প্রবর্তিত

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

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

সময় সংবেদনশীল

শুধুমাত্র তখনই একটি লাইভ আপডেট দেখান, যখন কার্যকলাপ চলাকালীন ব্যবহারকারীর মনোযোগের প্রয়োজন হয়। লাইভ আপডেটের একটি প্রধান ব্যবহার হলো পর্যবেক্ষণ, যখন ব্যবহারকারী কার্যকলাপের পরিবর্তনশীল অবস্থার উপর নজর রাখার জন্য লাইভ আপডেটে এক ঝলক চোখ বুলিয়ে উল্লেখযোগ্য সুবিধা পান।

যেসব কার্যকলাপের ক্ষেত্রে লাইভ আপডেট এবং সাধারণ নোটিফিকেশনের মধ্যে পরিবর্তন ঘটে, সেগুলোর জন্য প্রায়শই একটি লাইভ আপডেট উপযুক্ত। উদাহরণস্বরূপ, কোনো ব্যবহারকারীর ফ্লাইটের অনেক ঘণ্টা আগে বোর্ডিং পাসের নোটিফিকেশন দেখানো উপযুক্ত, কিন্তু নোটিফিকেশনটি কেবল তখনই একটি লাইভ আপডেটে পরিণত হওয়া উচিত যখন ব্যবহারকারীর কোনো জরুরি প্রয়োজন দেখা দেয়, যেমন—যখন তিনি বিমানবন্দর বা নির্ধারিত স্থানে পৌঁছান অথবা বোর্ডিং শুরু হয়ে যায়। এর বিপরীতে, কোনো প্যাকেজ ট্র্যাক করার জন্য লাইভ আপডেট উপযুক্ত নয়, কারণ ব্যবহারকারীকে এটি ক্রমাগত পর্যবেক্ষণ করার প্রয়োজন হয় না।

ইউএক্স অনুশীলন

অবস্থা দেখার জন্য ট্র্যাকার আইকনটি ব্যবহার করুন। এটি গতিশীলভাবে আপডেট করা যেতে পারে।

প্রোগ্রেস বারে কাস্টম ট্র্যাকার
চিত্র ৩. একটি কাস্টম ট্র্যাকার আইকন।

যখন আনুমানিক পৌঁছানোর সময় (ETA) গণনা করা হচ্ছে বা এখনও পাওয়া যায়নি, তখন খালি অবস্থা দেখাবেন না। সিস্টেমটি যে কাজ করছে তা বোঝাতে, উদাহরণে দেখানো অনুযায়ী, "ভাবছি..." বা "পুনরায় রুট করছি..."-এর মতো সক্রিয় প্লেসহোল্ডার টেক্সট প্রদান করুন।

চিন্তাভাবনা দেখানোর জন্য একটি অ-শূন্য অবস্থা।
চিত্র ৪. আপনার লাইভ আপডেটের জন্য একটি অ-খালি অবস্থা।

স্ট্যাটাস চিপস

নোটিফিকেশনটি দৃষ্টির বাইরে থাকলেও স্ট্যাটাস চিপ ব্যবহারকারীদের লাইভ আপডেটের উপর নজর রাখতে সাহায্য করে। আপনার অগ্রগতি-কেন্দ্রিক নোটিফিকেশনের গুরুত্বপূর্ণ অবস্থা-সম্পর্কিত তথ্য জানাতে setShortCriticalText বা setWhen ব্যবহার করুন।

আইকন সহ স্ট্যাটাস চিপ
চিত্র ৫। অনির্ধারিত অবস্থায় ছোট আইকনটি প্রদর্শিত হয়, Notification.Builder#setSmallIcon
সময়ের সাথে স্ট্যাটাস চিপ
চিত্র ৬। পরম সময় দেখানোর জন্য Notification.Builder#setShortCriticalText ব্যবহার করুন।
তথ্য সহ স্ট্যাটাস চিপ
চিত্র ৭। গুরুত্বপূর্ণ তথ্য জানাতে Notification.Builder#setShortCriticalText ব্যবহার করুন।

যখন সময়

নোটিফিকেশনটি বাতিল বা আপডেট না করা পর্যন্ত, 'when time' নোটিফিকেশনটির স্থায়িত্বের জন্য একটি কাউন্টডাউন শুরু করে। নিম্নলিখিত বুলেট পয়েন্টগুলোতে বিভিন্ন পরিস্থিতিতে 'when time' কীভাবে কাজ করে তা বর্ণনা করা হয়েছে:

  • কখনকার সময়টি কমপক্ষে ২ মিনিট পরের: যদি বর্তমান সময় সকাল ১০:০৫ হয় এবং কখনকার সময়টি সকাল ১০:১০-এ সেট করা থাকে, তাহলে চিপটি ' ৫ মিনিট' দেখাবে।
  • যখন সময় অতীত হয়ে যায়: লেখাটি দেখানো হয় না।
  • কখনকার সময় জানার জন্য ক্রোনোমিটার ব্যবহার করার সময় চিপের একটি টাইমার দেখানো যেতে পারে। setUsesChronometer এবং setChronometerCountdown দেখুন। ক্রোনোমিটার টাইমারটি যতক্ষণ ধনাত্মক থাকে, ততক্ষণ চিপে তা দেখানো হয়।
  • আপনি যদি আপনার নোটিফিকেশনে কখনকার সময়টি দেখাতে না চান, তাহলে setShowWhen কে FALSE এ সেট করুন।

স্ট্যাটাস চিপের চেহারা

স্ট্যাটাস চিপটিতে সর্বদা একটি আইকন থাকে এবং ঐচ্ছিকভাবে এতে লেখাও থাকতে পারে। চিপটির সর্বোচ্চ প্রস্থ ৯৬ডিপি। লেখাটি কেবল তখনই প্রদর্শিত হবে যখন সম্পূর্ণ লেখাটি চিপের মধ্যে আঁটবে। লেখাটি নিম্নলিখিত শর্তগুলোর উপর নির্ভর করে প্রদর্শিত হয়:

  • অক্ষর সংখ্যা ৭টির কম হলে সম্পূর্ণ লেখাটি দেখান।
  • যদি অর্ধেকেরও কম লেখা প্রদর্শিত হয়, তাহলে শুধু আইকনটি দেখান।
  • যদি অর্ধেকের বেশি লেখা প্রদর্শিত হয়, তাহলে যতটা সম্ভব বেশি লেখা দেখান।

বরখাস্ত

ব্যবহারকারীরা নোটিফিকেশন শেডে নোটিফিকেশনের দৃশ্যমানতা নিয়ন্ত্রণ করতে পারেন। অনাকাঙ্ক্ষিত লাইভ আপডেট পোস্ট করার ফলে ব্যবহারকারীরা অ্যাপটির পোস্ট করার অনুমতি প্রত্যাহার করে নিতে পারেন।

ব্যবহারকারীরা যাতে লাইভ আপডেট সম্পূর্ণরূপে নিষ্ক্রিয় করতে না পারে, সেজন্য এমন আপডেট পোস্ট করা থেকে বিরত থাকুন যা ব্যবহারকারীরা বাতিল করে দিতে পারে। ব্যবহারকারীর বাতিল করা লাইভ আপডেট পুনরায় পোস্ট করবেন না। বাতিল করা আপডেট শনাক্ত করতে setDeleteIntent ব্যবহার করুন।

এই API-গুলো নিয়ে পরীক্ষা করার জন্য নমুনা অ্যাপটি দেখুন।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

প্রশ্ন: প্রোগ্রেস বারের শেষে থাকা সাদা বিন্দুটি কী?

অগ্রগতির শেষ প্রবেশযোগ্যতা ভিজ্যুয়ালাইজেশন সূচক
চিত্র ৮. যাত্রা শেষের প্রবেশগম্যতা দৃশ্যায়ন

উত্তর: প্রোগ্রেস বারের শেষের সাদা বিন্দুটি দৃশ্যত এর সমাপ্তি নির্দেশ করে।

প্রশ্ন: লাইভ আপডেটের জন্য কাস্টম নোটিফিকেশন কেন সাপোর্ট করে না?

উত্তর: কাস্টম নোটিফিকেশনের আচরণ বিভিন্ন অ্যান্ড্রয়েড সংস্করণ এবং ডিভাইস প্রস্তুতকারকের মধ্যে উল্লেখযোগ্যভাবে ভিন্ন হওয়ায়, এগুলোর কারণে সামঞ্জস্যপূর্ণ টেস্টিং এবং ইউএক্স (UX) কঠিন হয়ে পড়ে। RemoteViews ব্যবহার করে কাস্টম নোটিফিকেশন এড়িয়ে চলুন।