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

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

ছবি ১. লাইভ আপডেট বিজ্ঞপ্তির একটি উদাহরণ।

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

  • ডিফল্ট হিসেবে বড় করা থাকে
  • আনকোল্যাপসিবল

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

প্রোমোশন ক্যারেক্টারিস্টিক্স

নিম্নলিখিত API আপনাকে নির্ধারণ করতে সাহায্য করে যে সিস্টেম আপনার বিজ্ঞপ্তি প্রচার করবে কিনা:

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

ব্যবহারের মাপকাঠি

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

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

চলছে

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

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

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

ব্যবহারকারীর দ্বারা শুরু করা

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

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

সময় সংক্রান্ত

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

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

UX প্র্যাক্টিস

অবস্থা দেখতে ট্র্যাকার আইকন ব্যবহার করুন। এটি ডায়নামিকভাবে আপডেট করা যেতে পারে।

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

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

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

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

বিজ্ঞপ্তি দেখা না গেলে, স্ট্যাটাস চিপ ব্যবহারকারীদের লাইভ আপডেট ট্র্যাক করতে সাহায্য করে। আপনার প্রগ্রেস-কেন্দ্রিক বিজ্ঞপ্তি সম্পর্কে গুরুত্বপূর্ণ স্ট্যাটাস সংক্রান্ত তথ্য জানাতে setShortCriticalText অথবা setWhen ব্যবহার করুন।

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

কখন

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

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

স্ট্যাটাস চিপের অ্যাপিয়ারেন্স

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

  • ৭টির কম অক্ষর থাকলে, পুরো টেক্সট দেখান।
  • টেক্সটের অর্ধেকের কম দেখালে, শুধু আইকন দেখান।
  • অর্ধেকের বেশি টেক্সট দেখানো গেলে, যতটা সম্ভব টেক্সট দেখান।

বাতিল করা

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

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

এইসব API নিয়ে এক্সপেরিমেন্ট করতে স্যাম্পেল অ্যাপ দেখুন।

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

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

প্রগ্রেস অ্যাক্সেসিবিলিটি ভিজ্যুয়ালাইজেশন ইন্ডিকেটরের শেষ
ছবি ৮. যাত্রা শেষ হওয়ার অ্যাক্সেসিবিলিটি ভিজ্যুয়ালাইজেশন

উত্তর: প্রোগ্রেস বারের শেষে সাদা ডট প্রোগ্রেস বারের শেষকে ভিজ্যুয়ালি ফ্ল্যাগ করে।

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

উত্তর: কাস্টম বিজ্ঞপ্তি ধারাবাহিক টেস্টিং ও UX-কে কঠিন করে তোলে কারণ Android ভার্সন ও ডিভাইস প্রস্তুতকারক অনুযায়ী এর আচরণে উল্লেখযোগ্য পার্থক্য দেখা যায়। RemoteViews ব্যবহার করে কাস্টম বিজ্ঞপ্তি এড়িয়ে যান।