বিজ্ঞপ্তির জন্য ব্রিজিং বিকল্প

ডিফল্টরূপে, ফোনের একটি অ্যাপ থেকে যেকোনো জোড়া ঘড়িতে বিজ্ঞপ্তিগুলি ব্রিজ করা হয় বা ভাগ করা হয়। যদি আপনি একটি ঘড়ির অ্যাপ তৈরি করেন এবং আপনার অ্যাপটি একটি জোড়া ফোনেও থাকে, তাহলে ব্যবহারকারীরা ডুপ্লিকেট বিজ্ঞপ্তি পেতে পারেন—একটি ফোন অ্যাপ দ্বারা তৈরি এবং ব্রিজ করা হয় এবং অন্যটি ঘড়ির অ্যাপ দ্বারা তৈরি করা হয়। 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()
)

সকল বিজ্ঞপ্তির জন্য ব্রিজিং অক্ষম করুন (প্রস্তাবিত নয়)

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

ফোন অ্যাপ থেকে সমস্ত বিজ্ঞপ্তি ব্রিজিং প্রতিরোধ করতে, watch অ্যাপের ম্যানিফেস্ট ফাইলে <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()

দ্রষ্টব্য: যদি একটি ঘড়ি একটি অ্যান্ড্রয়েড ফোনের সাথে পেয়ার করা হয় তবে ডিসমিসাল আইডি কাজ করে, কিন্তু যদি একটি ঘড়ি একটি আইফোনের সাথে পেয়ার করা হয় তবে তা কাজ করে না।

যখন বিজ্ঞপ্তিগুলি ব্রিজ করা হয় না

নিম্নলিখিত ধরণের বিজ্ঞপ্তিগুলি ব্রিজ করা হয় না:

  • Notification.Builder.setLocalOnly(boolean) ব্যবহার করে শুধুমাত্র স্থানীয় বিজ্ঞপ্তি সেট করা হয়েছে।
  • Notification.Builder.setOngoing(boolean) অথবা Notification.FLAG_ONGOING_EVENT ব্যবহার করে চলমান বিজ্ঞপ্তি সেট করা হয়।
  • Notification.FLAG_NO_CLEAR ব্যবহার করে অ-সাফযোগ্য বিজ্ঞপ্তি সেট করা হয়েছে।
  • পূর্বে বর্ণিত হিসাবে, কাউন্টারপার্ট ওয়্যারেবল অ্যাপটি নোটিফিকেশন ব্রিজিং অক্ষম করেছে এমন বিজ্ঞপ্তিগুলি।

ব্রিজড নোটিফিকেশনের জন্য সেরা পদ্ধতি

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

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

নকশা বিবেচনা

Wear OS বিজ্ঞপ্তিগুলির নিজস্ব ডিজাইন নির্দেশিকা রয়েছে। আরও তথ্যের জন্য, Wear OS ডিজাইন নির্দেশিকা পর্যালোচনা করুন।