ডিফল্টরূপে, সিস্টেমটি একটি ফোন অ্যাপ থেকে যেকোনো পেয়ার করা ঘড়িতে নোটিফিকেশন ব্রিজ বা শেয়ার করে। আপনি যদি একটি ঘড়ির অ্যাপ তৈরি করেন এবং আপনার অ্যাপটি একটি পেয়ার করা ফোনেও থাকে, তাহলে ব্যবহারকারীরা ডুপ্লিকেট নোটিফিকেশন পেতে পারেন—একটি ফোন অ্যাপের তৈরি ও ব্রিজ করা নোটিফিকেশন, এবং অন্যটি ঘড়ির অ্যাপের তৈরি করা নোটিফিকেশন। Wear OS-এ নোটিফিকেশনগুলো কীভাবে এবং কখন ব্রিজ করা হবে তা নিয়ন্ত্রণ করার জন্য ফিচার রয়েছে।
একই নোটিফিকেশন বারবার আসা এড়িয়ে চলুন
যখন আপনি ফায়ারবেস ক্লাউড মেসেজিং- এর মতো কোনো বাহ্যিক উৎস থেকে নোটিফিকেশন তৈরি করেন, তখন আপনার ফোন অ্যাপ এবং ওয়াচ অ্যাপ উভয়ই ঘড়িতে নিজস্ব নোটিফিকেশন প্রদর্শন করতে পারে। এই পুনরাবৃত্তি এড়াতে, আপনার ওয়াচ অ্যাপে প্রোগ্রাম্যাটিকভাবে ব্রিজিং নিষ্ক্রিয় করুন।
ব্রিজ ট্যাগ ব্যবহার করুন
আপনার ওয়াচ অ্যাপটি ইনস্টল করা থাকলে, আপনার ফোন অ্যাপের তৈরি করা কিছু নোটিফিকেশন ঘড়িতে সংযুক্ত করতে ব্রিজ ট্যাগ সেট করুন।
নিম্নলিখিত কোড নমুনায় দেখানো অনুযায়ী, setBridgeTag(String) মেথডটি ব্যবহার করে একটি নোটিফিকেশনে ব্রিজ ট্যাগ সেট করুন:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setBridgeTag("tagOne") ) .build()
ব্রিজিং নিষ্ক্রিয় করুন
আপনি কিছু নোটিফিকেশনের জন্য অথবা সমস্ত নোটিফিকেশনের জন্য ব্রিজিং নিষ্ক্রিয় করতে পারেন। আমরা আপনাকে বেছে বেছে ব্রিজিং নিষ্ক্রিয় করার পরামর্শ দিই।
শুধুমাত্র কিছু নোটিফিকেশনের জন্য ব্রিজিং নিষ্ক্রিয় করুন
আপনি ট্যাগ অনুসারে ডাইনামিকভাবে ব্রিজিং নিষ্ক্রিয় করতে পারেন এবং ঐচ্ছিকভাবে কিছু নোটিফিকেশনকে অনুমতি দিতে পারেন। উদাহরণস্বরূপ, tagOne , tagTwo , বা tagThree ট্যাগযুক্ত নোটিফিকেশনগুলো ছাড়া বাকি সবগুলোর জন্য ব্রিজিং নিষ্ক্রিয় করতে, নিম্নলিখিত উদাহরণে দেখানো BridgingConfig অবজেক্টটি ব্যবহার করুন:
// In this example, bridging is only enabled for tagOne, tagTwo and tagThree. BridgingManager.fromContext(context).setConfig( BridgingConfig.Builder(context, isBridgingEnabled = false) .addExcludedTags(listOf("tagOne", "tagTwo", "tagThree")) .build() )
সকল নোটিফিকেশনের জন্য ব্রিজিং নিষ্ক্রিয় করুন (অনুমোদিত নয়)
ফোন অ্যাপের সমস্ত নোটিফিকেশন ব্রিজ হওয়া আটকাতে, ওয়াচ অ্যাপের ম্যানিফেস্ট ফাইলে <meta-data> এন্ট্রিটি ব্যবহার করুন, যেমনটি নিচের উদাহরণে দেখানো হয়েছে:
<!-- Beware, this can have unintended consequences before the user is signed-in --> <meta-data android:name="com.google.android.wearable.notificationBridgeMode" android:value="NO_BRIDGING" />
একই ধরনের নোটিফিকেশন সিঙ্ক করতে একটি ডিসমিসাল আইডি সেট করুন।
আপনি যখন ব্রিজিং মোড ফিচারের মাধ্যমে ব্রিজিং প্রতিরোধ করেন, তখন ব্যবহারকারীর ডিভাইসগুলো জুড়ে নোটিফিকেশন খারিজ করার বিষয়টি সিঙ্ক হয় না।
তবে, যদি ফোন এবং ঘড়ি উভয় ডিভাইসেই একই ধরনের নোটিফিকেশন তৈরি করা হয়, তাহলে আপনি চাইবেন যে ব্যবহারকারী যখন দুটি নোটিফিকেশনের যেকোনো একটি বাতিল করবে, তখন উভয় নোটিফিকেশনই বাতিল হয়ে যাক।
NotificationCompat.WearableExtender এ আপনি একটি গ্লোবাল ইউনিক আইডি সেট করতে পারেন, যাতে কোনো ব্যবহারকারী যখন একটি নোটিফিকেশন ডিসমিস করেন, তখন পেয়ার করা ঘড়িগুলোতে থাকা একই আইডির অন্যান্য নোটিফিকেশনগুলোও ডিসমিস হয়ে যায়।
NotificationCompat.WearableExtender ক্লাসে এমন কিছু মেথড আছে যা আপনাকে ডিসমিসাল আইডি ব্যবহার করতে দেয়, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
যখন ব্যবহারকারী নোটিফিকেশনটি খারিজ করেন, তখন একই ডিসমিসাল আইডিযুক্ত অন্য সব নোটিফিকেশন ঘড়ি এবং ফোন থেকেও খারিজ হয়ে যায়। ডিসমিসাল আইডি পেতে getDismissalId() ব্যবহার করুন।
নিম্নলিখিত উদাহরণে, একটি নতুন নোটিফিকেশনের জন্য একটি বিশ্বব্যাপী অনন্য আইডি নির্দিষ্ট করা হয়েছে, ফলে ডিসমিসগুলো সিঙ্ক হয়ে যায়:
val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend( NotificationCompat.WearableExtender() .setDismissalId("abc123") ) .build()
শুধুমাত্র স্থানীয় বিজ্ঞপ্তি
একই নোটিফিকেশন বারবার আসা আটকাতে, আপনি setLocalOnly() ব্যবহার করে নোটিফিকেশনগুলোকে ফোনের মধ্যেই সীমাবদ্ধ রাখতে পারেন।
তবে, এই পদ্ধতিটি কেবল তখনই ব্যবহার করুন যখন নোটিফিকেশনটি শুধুমাত্র সেই ডিভাইসেই প্রদর্শিত হতে হবে যেখান থেকে এটি তৈরি করা হয়েছে। এর মধ্যে শুধু Wear OS ডিভাইস নয়, অন্যান্য পরিধানযোগ্য ডিভাইস এবং অন্য যেকোনো সংযুক্ত ডিভাইসও অন্তর্ভুক্ত। একটি লোকাল-অনলি নোটিফিকেশন ব্রিজ করে না, এমনকি যদি আপনার অ্যাপটি ঘড়িতে ইনস্টল করা না থাকে।
যখন এমন একটি Wear OS এবং ফোন অ্যাপ তৈরি করবেন যা উভয়ই নোটিফিকেশন তৈরি করে, তখন ডুপ্লিকেট নোটিফিকেশন এড়াতে এই পদ্ধতিটি ব্যবহার করবেন না। এর পরিবর্তে, ব্রিজিং অপশনগুলো ব্যবহার করুন।
উদাহরণস্বরূপ, যখন কোনো ব্যবহারকারী ফোনে একটি ফাইল ডাউনলোড করেন, তখন একটি শুধুমাত্র-স্থানীয় নোটিফিকেশন ব্যবহার করুন যা ডাউনলোড সম্পন্ন হওয়ার ইঙ্গিত দেয়।
যখন বিজ্ঞপ্তিগুলি সংযুক্ত করা হয় না
সিস্টেমটি নিম্নলিখিত ধরণের নোটিফিকেশনগুলোর মধ্যে সংযোগ স্থাপন করে না:
-
Notification.Builder.setLocalOnly(boolean)ব্যবহার করে শুধুমাত্র স্থানীয় নোটিফিকেশন সেট করা হয়। -
Notification.Builder.setOngoing(boolean)অথবাNotification.FLAG_ONGOING_EVENTব্যবহার করে চলমান নোটিফিকেশন সেট করা হয়। -
Notification.FLAG_NO_CLEARব্যবহার করে সেট করা অমোচনীয় নোটিফিকেশন। - যেসব নোটিফিকেশনের ক্ষেত্রে সংশ্লিষ্ট পরিধানযোগ্য অ্যাপটি নোটিফিকেশন ব্রিজিং নিষ্ক্রিয় করে রেখেছে।
ব্রিজড নোটিফিকেশনের বাস্তবায়ন সংক্রান্ত বিবেচ্য বিষয়সমূহ
একটি পরিধানযোগ্য ডিভাইস থেকে ব্রিজড নোটিফিকেশন পাঠাতে বা সরাতে সময় লাগে। আপনার নোটিফিকেশন ডিজাইন করার সময়, এই বিলম্বের কারণে সৃষ্ট অপ্রত্যাশিত আচরণ এড়িয়ে চলুন। নিম্নলিখিত নির্দেশিকাগুলো নিশ্চিত করতে সাহায্য করে যে আপনার ব্রিজড নোটিফিকেশনগুলো অ্যাসিঙ্ক্রোনাস নোটিফিকেশনের সাথে কাজ করে:
- আপনি যদি ফোনে কোনো নোটিফিকেশন বাতিল করেন, তাহলে ঘড়িতে সংশ্লিষ্ট নোটিফিকেশনটি বাতিল হতে কিছুটা সময় লাগতে পারে। এই সময়ের মধ্যে, ব্যবহারকারী সেই নোটিফিকেশনের জন্য অপেক্ষারত ইন্টেন্টগুলোর মধ্যে একটি পাঠাতে পারেন। এই কারণে, আপনার অ্যাপে বাতিল করা নোটিফিকেশনগুলো থেকে অপেক্ষারত ইন্টেন্ট গ্রহণ করা চালু রাখুন: নোটিফিকেশন বাতিল করার সময়, সেই নোটিফিকেশনগুলোর অপেক্ষারত ইন্টেন্ট রিসিভারগুলোকে বৈধ রাখুন।
- একসাথে সমস্ত নোটিফিকেশন বাতিল করে আবার চালু করবেন না। শুধুমাত্র সেই নোটিফিকেশনগুলোই পরিবর্তন বা অপসারণ করুন যেগুলো প্রকৃতপক্ষে পরিবর্তন করা হয়েছে। এতে পরিধানযোগ্য ডিভাইসটি আপডেট হওয়ার বিলম্ব এড়ানো যায় এবং ব্যাটারির আয়ুর উপর আপনার অ্যাপের প্রভাবও কমে।
নকশা বিবেচনা
Wear OS নোটিফিকেশনের নিজস্ব ডিজাইন নির্দেশিকা রয়েছে। আরও তথ্যের জন্য, Wear OS ডিজাইন নির্দেশিকা দেখুন।