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

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

ডুপ্লিকেট বিজ্ঞপ্তি এড়িয়ে চলুন

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

ব্রিজ ট্যাগ ব্যবহার করুন

আপনার পরিধানযোগ্য অ্যাপ ইনস্টল করার সময় আপনি যদি আপনার মোবাইল অ্যাপে তৈরি করা কিছু বিজ্ঞপ্তি ঘড়িতে ব্রিজ করতে চান, তাহলে ব্রিজ ট্যাগ সেট করুন।

নিম্নলিখিত কোড নমুনায় দেখানো হিসাবে setBridgeTag(String) পদ্ধতি ব্যবহার করে একটি বিজ্ঞপ্তিতে একটি সেতু ট্যাগ সেট করুন:

val notification = NotificationCompat.Builder(context, channelId)
    // ... set other fields ...
    .extend(
        NotificationCompat.WearableExtender()
            .setBridgeTag("tagOne")
    )
    .build()

ব্রিজিং অক্ষম করুন

আপনি কিছু বিজ্ঞপ্তি বা সমস্ত বিজ্ঞপ্তির জন্য ব্রিজিং অক্ষম করতে পারেন৷ আমরা সুপারিশ করি যে আপনি বেছে বেছে ব্রিজিং অক্ষম করুন৷

কিছু বিজ্ঞপ্তির জন্য ব্রিজিং অক্ষম করুন

আপনি গতিশীলভাবে ব্রিজিং অক্ষম করতে পারেন এবং ঐচ্ছিকভাবে, তাদের ট্যাগের উপর ভিত্তি করে কিছু বিজ্ঞপ্তির অনুমতি দিতে পারেন। উদাহরণস্বরূপ, tagOne , tagTwo , বা tagThree হিসাবে ট্যাগ করা ব্যতীত সমস্ত বিজ্ঞপ্তির জন্য ব্রিজিং নিষ্ক্রিয় করতে, নিম্নলিখিত উদাহরণে দেখানো হিসাবে BridgingConfig অবজেক্টটি ব্যবহার করুন:

BridgingManager.fromContext(context).setConfig(
    BridgingConfig.Builder(context, false)
        .addExcludedTags(listOf("tagOne", "tagTwo", "tagThree"))
        .build()
)

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

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

একটি ফোন অ্যাপ থেকে সমস্ত বিজ্ঞপ্তির ব্রিজিং প্রতিরোধ করতে, ওয়াচ অ্যাপের ম্যানিফেস্ট ফাইলে <meta-data> এন্ট্রি ব্যবহার করুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

<application>
...
  <!-- Beware, this can have unintended consqequences before the user is signed-in -->
  <meta-data
    android:name="com.google.android.wearable.notificationBridgeMode"
    android:value="NO_BRIDGING" />
...
</application>

দ্রষ্টব্য: রানটাইমে একটি ব্রিজিং কনফিগারেশন নির্দিষ্ট করা Android ম্যানিফেস্ট ফাইলে একটি ব্রিজিং-সম্পর্কিত সেটিংকে ওভাররাইড করে।

অনুরূপ বিজ্ঞপ্তি সিঙ্ক করতে একটি বরখাস্ত আইডি সেট করুন

আপনি যখন ব্রিজিং মোড বৈশিষ্ট্যের সাথে ব্রিজিং প্রতিরোধ করেন, তখন ব্যবহারকারীর ডিভাইস জুড়ে বিজ্ঞপ্তি বাতিল করা সিঙ্ক করা হয় না।

যাইহোক, যদি মোবাইল ডিভাইস এবং ঘড়ি উভয় ক্ষেত্রেই একই ধরনের বিজ্ঞপ্তি তৈরি করা হয়, তাহলে ব্যবহারকারী যখন তাদের যেকোনো একটিকে বরখাস্ত করে তখন আপনি উভয় বিজ্ঞপ্তিই বাতিল করতে চান।

NotificationCompat.WearableExtender এ, আপনি একটি বিশ্বব্যাপী অনন্য আইডি সেট করতে পারেন যাতে কোনো বিজ্ঞপ্তি খারিজ হয়ে গেলে, জোড়া ঘড়িতে একই ID সহ অন্যান্য বিজ্ঞপ্তিগুলিও খারিজ হয়ে যায়।

NotificationCompat.WearableExtender ক্লাসে এমন পদ্ধতি রয়েছে যা আপনাকে বরখাস্ত আইডি ব্যবহার করতে দেয়, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

fun setDismissalId(dismissalId: String): WearableExtender
fun getDismissalId(): String

একটি বরখাস্ত সিঙ্ক করতে, setDismissalId() পদ্ধতি ব্যবহার করুন। প্রতিটি বিজ্ঞপ্তির জন্য, যখন আপনি setDismissalId() পদ্ধতিতে কল করেন তখন একটি স্ট্রিং হিসাবে একটি বিশ্বব্যাপী অনন্য আইডি পাস করুন।

বিজ্ঞপ্তিটি খারিজ হয়ে গেলে, একই বরখাস্ত আইডি সহ অন্যান্য সমস্ত বিজ্ঞপ্তি ঘড়িতে এবং ফোনে খারিজ হয়ে যায়। একটি বরখাস্ত আইডি পুনরুদ্ধার করতে, 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 ডিজাইন নির্দেশিকা পর্যালোচনা করুন।