Android Automotive OS-এ বিজ্ঞপ্তি

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

গাড়িতে নোটিফিকেশনগুলো কীভাবে ভিন্ন হয়

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

  • সরলীকৃত ব্যবহারকারীর মিথস্ক্রিয়া
  • ড্রাইভের অবস্থার উপর ভিত্তি করে ইউএক্স সীমাবদ্ধতা

সরলীকৃত ব্যবহারকারীর মিথস্ক্রিয়া

চালকরা যাতে রাস্তার দিকে মনোযোগ দিতে পারেন, তা নিশ্চিত করতে গাড়ির নোটিফিকেশনগুলোতে একটি সরলীকৃত ইউজার ইন্টারঅ্যাকশন মডেল রয়েছে, যাতে নিম্নলিখিত বৈশিষ্ট্যগুলো অন্তর্ভুক্ত:

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

অ্যান্ড্রয়েড অটোমোটিভ ওএস স্বয়ংক্রিয়ভাবে গাড়ির জন্য সামঞ্জস্যপূর্ণ সকল মেসেজিং নোটিফিকেশনে প্লে এবং মিউট বাটন যুক্ত করে।

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

সরলীকৃত বিজ্ঞপ্তি প্রদর্শনের বিকল্পগুলি

RemoteViews এবং কাস্টম কন্টেন্ট ভিউ সমর্থিত নয়। এছাড়াও, নিম্নলিখিত নোটিফিকেশন স্টাইলগুলো সমর্থিত নয়:

আপনার অ্যাপ যদি এই নোটিফিকেশন স্টাইলগুলোর কোনো একটি ব্যবহার করে Android Automotive OS-এ নোটিফিকেশন পাঠায়, তাহলে শুধুমাত্র সারসংক্ষেপ লেখাটি দেখানো হবে।

সরলীকৃত বিজ্ঞপ্তি চ্যানেল ব্যবস্থাপনা

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

ড্রাইভের অবস্থার উপর ভিত্তি করে ইউএক্স সীমাবদ্ধতা

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

  • নোটিফিকেশন স্ট্রিংগুলিকে একটি নির্দিষ্ট অক্ষর দৈর্ঘ্যে সংক্ষিপ্ত করা
  • CATEGORY_MESSAGE নোটিফিকেশনের জন্য বার্তার সারাংশ লুকানো হচ্ছে
  • নোটিফিকেশন সেন্টারে প্রদর্শিত নোটিফিকেশনের সংখ্যা সীমিত করা।

সমর্থিত সম্পদের প্রকারভেদ

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

  • অঙ্কনযোগ্য
  • আইকন
  • ছবি

মেসেজিং নোটিফিকেশনের জন্য সামঞ্জস্যের প্রয়োজনীয়তা

একটি সামঞ্জস্যপূর্ণ এবং ন্যূনতম মনোযোগ বিঘ্নকারী ব্যবহারকারীর অভিজ্ঞতা প্রদানের জন্য, অ্যান্ড্রয়েড অটোমোটিভ ওএস-এ মেসেজিং নোটিফিকেশনের বিশেষ কিছু প্রয়োজনীয়তা রয়েছে।

একটি মেসেজিং নোটিফিকেশন গাড়ির জন্য উপযুক্ত হবে, যদি এটি নিম্নলিখিত শর্তগুলো পূরণ করে:

  • এটি CATEGORY_MESSAGE ক্যাটাগরির অন্তর্গত।
  • এটি Notification.MessagingStyle স্টাইলটি ব্যবহার করে।
  • এতে শুধু অপঠিত বার্তাগুলো অন্তর্ভুক্ত রয়েছে।
  • এতে একটি 'পঠিত হিসেবে চিহ্নিত করুন' Action রয়েছে যা নিম্নলিখিত শর্তগুলো পূরণ করে:

    • সিমান্টিক অ্যাকশনটি Action.SEMANTIC_ACTION_MARK_AS_READ হিসেবে সেট করা হয়েছে।
    • Action নির্দেশ করে যে এটি চালু হলে কোনো ইউজার ইন্টারফেস প্রদর্শন করে না।
  • যদি নোটিফিকেশনটিতে কোনো প্রত্যুত্তর Action থাকে, তাহলে সেই Action নিম্নলিখিত শর্তগুলো পূরণ করতে হবে:

    • সিমান্টিক অ্যাকশনটি Action.SEMANTIC_ACTION_REPLY তে সেট করা হয়েছে।
    • Action নির্দেশ করে যে এটি চালু হলে কোনো ইউজার ইন্টারফেস প্রদর্শন করে না।
    • Action একটিমাত্র RemoteInput রয়েছে।

বিজ্ঞপ্তি কেন্দ্র

প্রায় সব নোটিফিকেশনই নোটিফিকেশন সেন্টারে দেখা যায়, এমনকি যদি সেই নোটিফিকেশনগুলো হেডস-আপ নোটিফিকেশন হিসেবেও ট্রিগার হয়ে থাকে। ড্রাইভ চলাকালীন নোটিফিকেশনগুলো নোটিফিকেশন সেন্টারে থেকে যায়।

চালকরা নোটিফিকেশন সেন্টারে থাকা নোটিফিকেশনগুলো নিয়ন্ত্রণ করতে পারেন। গাড়ির প্রস্তুতকারকের উপর নির্ভর করে, চালকরা নিম্নলিখিত এক বা উভয় উপায়ে নোটিফিকেশন সেন্টারে প্রবেশ করেন:

  • অন্যান্য ডিভাইসের নোটিফিকেশন ড্রয়ারের মতোই, স্ক্রিনের উপর থেকে নিচে সোয়াইপ করলে এটি কাজ করে।
  • সিস্টেম ইন্টারফেসে একটি বোতামে ট্যাপ করা।

গ্রুপ বিজ্ঞপ্তি

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

যে বিজ্ঞপ্তিগুলি নোটিফিকেশন সেন্টারে দেখা যায় না

নিম্নলিখিত নোটিফিকেশনগুলো নোটিফিকেশন সেন্টারে দেখা যায় না:

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

হেডস-আপ বিজ্ঞপ্তি

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

নোটিফিকেশন সেন্টার খোলা থাকা অবস্থায় হেডস-আপ নোটিফিকেশন প্রদর্শিত হওয়ার অনুমতি দেওয়া হবে কি না, সেই সিদ্ধান্ত গাড়ি নির্মাতারা নিতে পারেন।

অ্যাপগুলি কীভাবে হেডস-আপ নোটিফিকেশন চালু করে

অ্যাপগুলির সিস্টেম প্রিভিলেজ আছে কি না, তার উপর নির্ভর করে হেডস-আপ নোটিফিকেশন চালু করার জন্য তাদের ভিন্ন ভিন্ন শর্ত থাকে।

সিস্টেম-সুবিধাপ্রাপ্ত অ্যাপ এবং প্ল্যাটফর্ম কী দিয়ে স্বাক্ষরিত অ্যাপ
অ্যাপটি নোটিফিকেশন চ্যানেলের গুরুত্ব IMPORTANCE_HIGH বা তার চেয়ে বেশি নির্ধারণ করে একটি হেডস-আপ নোটিফিকেশন চালু করতে পারে।
অন্যান্য সমস্ত অ্যাপ

অ্যাপটি নোটিফিকেশন চ্যানেলের গুরুত্ব IMPORTANCE_HIGH বা তার চেয়ে বেশি নির্ধারণ করে এবং নোটিফিকেশনটি নিম্নলিখিত বিভাগগুলির মধ্যে একটির অন্তর্গত কিনা তা যাচাই করার মাধ্যমে একটি হেডস-আপ নোটিফিকেশন চালু করতে পারে:

একটি হেডস-আপ নোটিফিকেশনের জীবনকাল

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

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

  • যদি কোনো অ্যাপ আট-সেকেন্ডের সময়সীমার মধ্যে নোটিফিকেশনটি আপডেট করে , তাহলে হেডস-আপ নোটিফিকেশনগুলো থেকে যায়।

যখন কোনো হেডস-আপ নোটিফিকেশন খারিজ করা হয়, তখন সেটি নোটিফিকেশন সেন্টারে তালিকাভুক্ত হয়, যদি না সেটি CATEGORY_NAVIGATION নোটিফিকেশন হয়।

গাড়ির জন্য নোটিফিকেশন এপিআই-এর পরিবর্তন এবং সীমাবদ্ধতা

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

নোটিফিকেশন.বিল্ডার

সারণি ১ এবং ২-এ Notification.Builder ক্লাসের API পরিবর্তন ও সীমাবদ্ধতাগুলো বর্ণনা করা হয়েছে।

সারণি ১। Notification.Builder এর পাবলিক মেথডগুলিতে পরিবর্তনসমূহ

জনসাধারণের পদ্ধতি প্রভাব বর্ণনা

addAction()

শর্তসাপেক্ষ নো-অপ Notification.MessagingStyle নোটিফিকেশনগুলিতে অবশ্যই সামঞ্জস্যের প্রয়োজনীয়তাগুলিতে নির্দিষ্ট করা অ্যাকশনগুলি যোগ করতে হবে। অতিরিক্ত কোনো অ্যাকশন যোগ করা হলে তা নোটিফিকেশন বাটন হিসেবে প্রদর্শিত হবে না।

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

নো-অপ RemoteViews এবং কাস্টম কন্টেন্ট ভিউ সমর্থিত নয়।

setBadgeIconType()

setNumber()

নো-অপ নোটিফিকেশন ব্যাজ সমর্থিত নয়।

setChronometerCountDown()

setUsesChronometer()

নো-অপ কাউন্টডাউন টাইমার সমর্থিত নয়।
setColorized() সীমাবদ্ধতা পরিবর্তিত হয়েছে

প্ল্যাটফর্ম-স্বাক্ষরিত অ্যাপ : কনফিগারযোগ্য; ডিফল্টরূপে অনুমোদিত।

সিস্টেম-সুবিধাপ্রাপ্ত অ্যাপ : প্ল্যাটফর্ম দ্বারা কনফিগার করা হয়; ডিফল্টরূপে অনুমোদিত নয়।

অন্যান্য সকল অ্যাপ : প্ল্যাটফর্ম দ্বারা কনফিগার করা; ডিফল্টরূপে অনুমোদিত নয়।

setFullScreenIntent() আচরণ পরিবর্তিত হয়েছে ইন্টেন্টটি স্বয়ংক্রিয়ভাবে চালু করে না।
setLargeIcon() আচরণ পরিবর্তিত হয়েছে নোটিফিকেশনের ডান দিকে বড় আইকনগুলো দেখানো হয়।
setLights() নো-অপ অ্যান্ড্রয়েড অটোমোটিভ ওএস ডিভাইসগুলোতে এলইডি ইন্ডিকেটর লাইট থাকে না।
setOngoing() আচরণ পরিবর্তিত হয়েছে

যখন নোটিফিকেশনটি একটি হেডস-আপ নোটিফিকেশনও ট্রিগার করে, তখন আচরণটি ভিন্ন হয়।

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

চালকরা অন্য সব ধরনের হেডস-আপ নোটিফিকেশন বাতিল করতে পারেন।

setPublicVersion()

setVisibility()

নো-অপ প্রাইভেট মোড সমর্থিত নয়।
setSettingsText() নো-অপ নোটিফিকেশনে অ্যাপ সেটিংসের সাথে লিঙ্ক করা কোনো অপশন নেই। এর পরিবর্তে ড্রাইভাররা অ্যাপের মাধ্যমেই অ্যাপ সেটিংস অ্যাক্সেস করেন।
setTicker() নো-অপ টিকার টেক্সট সমর্থিত নয়।

সারণি ২। Notification.Builder এর নেস্টেড ক্লাসগুলিতে পরিবর্তনসমূহ

নেস্টেড ক্লাস প্রভাব বর্ণনা

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

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

এই শৈলীর নোটিফিকেশনগুলোতে নিম্নলিখিত পার্থক্যগুলো রয়েছে:

Notification.CarExtender

Notification.WearableExtender

ব্যবহৃত নয় এক্সটেন্ডার সমর্থিত নয়।

নোটিফিকেশন.অ্যাকশন.বিল্ডার

সারণি ৩-এ Notification.Action.Builder ক্লাসের API পরিবর্তন এবং সীমাবদ্ধতাগুলো বর্ণনা করা হয়েছে।

সারণি ৩। Notification.Action.Builder এর পাবলিক মেথডগুলিতে পরিবর্তনসমূহ।

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