ডিফল্ট হিসেবে, সিস্টেম ব্রিজ করে অথবা শেয়ার করে, যেকোনও পেয়ার করা ওয়াচে ফোন অ্যাপ থেকে আসা বিজ্ঞপ্তি। আপনি যদি কোনও ওয়াচ অ্যাপ তৈরি করেন এবং আপনার অ্যাপটি কোনও পেয়ার করা ফোনেও থাকে, তাহলে ব্যবহারকারীরা ডুপ্লিকেট বিজ্ঞপ্তি পেতে পারেন—একটি ফোন অ্যাপ তৈরি করে এবং ব্রিজ করে এবং অন্যটি ওয়াচ অ্যাপ তৈরি করে। Wear OS-এ বিজ্ঞপ্তি কীভাবে ও কখন ব্রিজ করা হবে তা কন্ট্রোল করার ফিচার রয়েছে।
ডুপ্লিকেট বিজ্ঞপ্তি এড়িয়ে যাওয়া
আপনি Firebase ক্লাউড মেসেজিং-এর মতো এক্সটার্নাল সোর্স থেকে বিজ্ঞপ্তি তৈরি করলে, আপনার ফোন অ্যাপ ও ওয়াচ অ্যাপ, দু'টিই ওয়াচে নিজস্ব বিজ্ঞপ্তি দেখাতে পারে। ডুপ্লিকেট এড়াতে, আপনার ওয়াচ অ্যাপে প্রোগ্রাম অনুযায়ী ব্রিজিং বন্ধ করুন।
ব্রিজ ট্যাগ ব্যবহার করা
আপনার ওয়াচ অ্যাপ ইনস্টল করা হলে, আপনার ফোন অ্যাপ ওয়াচে যেসব বিজ্ঞপ্তি তৈরি করে সেগুলির মধ্যে কিছু বিজ্ঞপ্তি ব্রিজ করতে ব্রিজ ট্যাগ সেট করুন।
নিচের কোড স্যাম্পেলে দেখানো
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 ডিজাইন নির্দেশিকা দেখুন।