বিজ্ঞপ্তি রানটাইম অনুমতি

অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) এবং তার উচ্চতর সংস্করণগুলি কোনও অ্যাপ থেকে অব্যাহতিপ্রাপ্ত (ফোরগ্রাউন্ড সার্ভিসেস (FGS) সহ) বিজ্ঞপ্তি পাঠানোর জন্য রানটাইম অনুমতি সমর্থন করে: POST_NOTIFICATIONS । এই পরিবর্তন ব্যবহারকারীদের তাদের কাছে সবচেয়ে গুরুত্বপূর্ণ বিজ্ঞপ্তিগুলিতে মনোনিবেশ করতে সহায়তা করে।

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

অনুমতি ঘোষণা করুন

আপনার অ্যাপ থেকে নতুন বিজ্ঞপ্তির অনুমতির অনুরোধ করতে, আপনার অ্যাপটিকে Android 13 টার্গেট করে আপডেট করুন এবং অন্যান্য রানটাইম অনুমতির অনুরোধের তুলনায় একই প্রক্রিয়া সম্পন্ন করুন, যেমনটি নিম্নলিখিত বিভাগগুলিতে দেখানো হয়েছে।

আপনার অ্যাপের ম্যানিফেস্ট ফাইলে যে অনুমতিটি ঘোষণা করতে হবে তা নিম্নলিখিত কোড স্নিপেটে প্রদর্শিত হবে:

<manifest ...>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <application ...>
        ...
    </application>
</manifest>

অ্যাপের ক্ষমতা অনুমতি সংলাপে ব্যবহারকারীর পছন্দের উপর নির্ভর করে

এই সংলাপে, ব্যবহারকারীদের জন্য নিম্নলিখিত ক্রিয়াগুলি উপলব্ধ রয়েছে:

ব্যবহারকারী কোন পদক্ষেপ নেয় তার উপর ভিত্তি করে আপনার অ্যাপটি কীভাবে আচরণ করে তা নিম্নলিখিত বিভাগগুলিতে বর্ণনা করা হয়েছে।

ব্যবহারকারী "অনুমতি দিন" নির্বাচন করেন

যদি ব্যবহারকারী অনুমতি বিকল্পটি নির্বাচন করেন, তাহলে আপনার অ্যাপটি নিম্নলিখিত কাজগুলি করতে পারে:

ব্যবহারকারী "অনুমতি দেবেন না" নির্বাচন করেন

যদি ব্যবহারকারী "অনুমতি দেবেন না" বিকল্পটি নির্বাচন করেন, তাহলে আপনার অ্যাপটি ছাড়ের যোগ্যতা অর্জন না করলে বিজ্ঞপ্তি পাঠাতে পারবে না। কয়েকটি নির্দিষ্ট ভূমিকা ছাড়া সমস্ত বিজ্ঞপ্তি চ্যানেল ব্লক করা হয়। এটি সিস্টেম সেটিংসে ব্যবহারকারী যখন ম্যানুয়ালি আপনার অ্যাপের জন্য সমস্ত বিজ্ঞপ্তি বন্ধ করে দেয় তখন ঘটে এমন আচরণের অনুরূপ।

সতর্কতা: যদি আপনার অ্যাপটি ১২ লিটার বা তার কম টার্গেট করে এবং ব্যবহারকারী যদি অনুমতি না দেয়, এমনকি একবারও, তাহলে নিম্নলিখিতগুলির মধ্যে একটি না হওয়া পর্যন্ত সেগুলি আবার প্রম্পট করা হবে না:

  • ব্যবহারকারী আপনার অ্যাপটি আনইনস্টল করে পুনরায় ইনস্টল করে।
  • আপনি আপনার অ্যাপটি Android 13 বা তার পরবর্তী ভার্সনের জন্য আপডেট করেন।

ব্যবহারকারী ডায়ালগ থেকে সোয়াইপ করে সরে যান

যদি ব্যবহারকারী ডায়ালগ থেকে সোয়াইপ করে চলে যান—অর্থাৎ, তারা অনুমতি দিন বা অনুমতি দেবেন না নির্বাচন করেন না—তবে বিজ্ঞপ্তির অনুমতির অবস্থা পরিবর্তন হয় না।

নতুন ইনস্টল করা অ্যাপের উপর প্রভাব

যদি কোনও ব্যবহারকারী আপনার অ্যাপটি এমন কোনও ডিভাইসে ইনস্টল করেন যা Android 13 বা তার উচ্চতর সংস্করণে চলে, তাহলে আপনার অ্যাপের বিজ্ঞপ্তিগুলি ডিফল্টরূপে বন্ধ থাকে । আপনার অ্যাপটিকে বিজ্ঞপ্তি পাঠানোর জন্য অপেক্ষা করতে হবে যতক্ষণ না আপনি নতুন অনুমতির জন্য অনুরোধ করেন এবং ব্যবহারকারী আপনার অ্যাপটিকে সেই অনুমতি দেয়।

আপনার অ্যাপের টার্গেট SDK ভার্সনের উপর ভিত্তি করে অনুমতি ডায়ালগটি প্রদর্শিত হওয়ার সময় নির্ধারণ করা হয়:

  • যদি আপনার অ্যাপটি অ্যান্ড্রয়েড ১৩ বা তার পরবর্তী ভার্সনের জন্য উপযুক্ত হয়, তাহলে অনুমতি ডায়ালগ কখন প্রদর্শিত হবে তার উপর আপনার অ্যাপের সম্পূর্ণ নিয়ন্ত্রণ থাকবে। এই সুযোগটি ব্যবহার করে ব্যবহারকারীদের ব্যাখ্যা করুন কেন অ্যাপটির এই অনুমতির প্রয়োজন, এবং তাদের এটি প্রদান করতে উৎসাহিত করুন।
  • যদি আপনার অ্যাপটি ১২L (API লেভেল ৩২) বা তার কম টার্গেট করে, তাহলে আপনি যখন একটি নোটিফিকেশন চ্যানেল তৈরি করার পরে প্রথমবার আপনার অ্যাপটি কোনও অ্যাক্টিভিটি শুরু করে, অথবা যখন আপনার অ্যাপ কোনও অ্যাক্টিভিটি শুরু করে এবং তারপর তার প্রথম নোটিফিকেশন চ্যানেল তৈরি করে, তখন সিস্টেমটি অনুমতি ডায়ালগটি দেখায়। এটি সাধারণত অ্যাপ স্টার্টআপে হয়।

বিদ্যমান অ্যাপের আপডেটের উপর প্রভাব

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

পূর্ব-অনুদানের জন্য যোগ্যতা

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

যদি ব্যবহারকারী ১২ লিটার বা তার কম ভার্সনে চলমান ডিভাইসে আপনার অ্যাপের জন্য বিজ্ঞপ্তি বন্ধ করে দেন, তাহলে ডিভাইসটি অ্যান্ড্রয়েড ১৩ বা তার উচ্চতর ভার্সনে আপগ্রেড করলেও সেই অস্বীকৃতি অব্যাহত থাকে।

ছাড়

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

মিডিয়া সেশন

মিডিয়া সেশন সম্পর্কিত বিজ্ঞপ্তিগুলি এই আচরণ পরিবর্তনের আওতা থেকে মুক্ত।

ফোন কলগুলি স্ব-পরিচালনার জন্য কনফিগার করা অ্যাপগুলি

যদি আপনার অ্যাপটি ফোন কলগুলি স্ব-পরিচালনার জন্য নিজেকে কনফিগার করে, তাহলে Notification.CallStyle বিজ্ঞপ্তি শৈলী ব্যবহার করে বিজ্ঞপ্তি পাঠানোর জন্য আপনার অ্যাপটির POST_NOTIFICATIONS অনুমতির প্রয়োজন নেই।

সিস্টেমটি আপনার অ্যাপটিকে ফোন কলগুলি স্ব-পরিচালনার জন্য কনফিগার করেছে বলে মনে করে যদি এটি নিম্নলিখিত প্রতিটি কাজ করে:

  1. MANAGE_OWN_CALLS অনুমতি ঘোষণা করে।
  2. ConnectionService ইন্টারফেস বাস্তবায়ন করে।
  3. registerPhoneAccount() এ কল করে ডিভাইসের টেলিকম প্রদানকারীর সাথে নিবন্ধন করে।

আপনার অ্যাপটি পরীক্ষা করুন

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

  • অ্যান্ড্রয়েড ১৩ বা তার উচ্চতর ভার্সন চালিত ডিভাইসে অ্যাপটি নতুন ইনস্টল করা হয়েছে:

    adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
    adb shell pm clear-permission-flags PACKAGE_NAME \
      android.permission.POST_NOTIFICATIONS user-set
    adb shell pm clear-permission-flags PACKAGE_NAME \
      android.permission.POST_NOTIFICATIONS user-fixed
  • ১২ লিটার বা তার কম ভার্সনের ডিভাইসে অ্যাপটি ইনস্টল করা হলে ব্যবহারকারী নোটিফিকেশন সক্রিয় রাখেন, তারপর ডিভাইসটি অ্যান্ড্রয়েড ১৩ বা তার উচ্চতর ভার্সনে আপগ্রেড হয়:

    adb shell pm grant PACKAGE_NAME android.permission.POST_NOTIFICATIONS
    adb shell pm set-permission-flags PACKAGE_NAME \
      android.permission.POST_NOTIFICATIONS user-set
    adb shell pm clear-permission-flags PACKAGE_NAME \
      android.permission.POST_NOTIFICATIONS user-fixed
  • ১২ লিটার বা তার কম ভার্সনের ডিভাইসে অ্যাপটি ইনস্টল করা হলে ব্যবহারকারী ম্যানুয়ালি নোটিফিকেশন বন্ধ করে দেন, তারপর ডিভাইসটি অ্যান্ড্রয়েড ১৩ বা তার উচ্চতর ভার্সনে আপগ্রেড হয়:

    adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
    adb shell pm set-permission-flags PACKAGE_NAME \
      android.permission.POST_NOTIFICATIONS user-set
    adb shell pm clear-permission-flags PACKAGE_NAME \
      android.permission.POST_NOTIFICATIONS user-fixed

সেরা অনুশীলন

এই বিভাগে আপনার অ্যাপে নতুন বিজ্ঞপ্তির অনুমতি সবচেয়ে কার্যকরভাবে কীভাবে ব্যবহার করতে পারেন তার বেশ কয়েকটি উপায় বর্ণনা করা হয়েছে।

আপনার অ্যাপের টার্গেট SDK ভার্সন আপডেট করুন

অনুমতি ডায়ালগটি প্রদর্শিত হলে আপনার অ্যাপটিকে আরও নমনীয়তা দিতে, আপনার অ্যাপটি আপডেট করুন যাতে এটি Android 13 বা তার উচ্চতর ভার্সনের জন্য উপযুক্ত হয়।

বিজ্ঞপ্তির অনুমতি প্রম্পট দেখানোর জন্য অপেক্ষা করুন

ব্যবহারকারীদের কোনও অনুমতি দেওয়ার আগে, তাদের আপনার অ্যাপের সাথে পরিচিত হতে দিন।

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

  • ব্যবহারকারী একটি "সতর্কতা ঘণ্টা" বোতাম টিপে।
  • ব্যবহারকারী কারো সোশ্যাল মিডিয়া অ্যাকাউন্ট অনুসরণ করতে পছন্দ করেন।
  • ব্যবহারকারী খাবার সরবরাহের জন্য একটি অর্ডার জমা দেন।

চিত্র ১-এ বিজ্ঞপ্তির অনুমতির অনুরোধের জন্য একটি প্রস্তাবিত কর্মপ্রবাহ দেখানো হয়েছে। যদি না shouldShowRequestPermissionRationale() true ফেরত দেয়, তাহলে আপনার অ্যাপের মাঝখানের স্ক্রিনটি প্রদর্শন করার প্রয়োজন নেই—যেটিতে "Get notifyed!" শিরোনাম লেখা আছে।

বিকল্পভাবে, ব্যবহারকারীদের আপনার অ্যাপের সাথে পরিচিত হওয়ার সুযোগ দেওয়ার পরে আপনি একটি অনুরোধ সেট করতে পারেন। উদাহরণস্বরূপ, ব্যবহারকারী আপনার অ্যাপটি তৃতীয় বা চতুর্থবার চালু না হওয়া পর্যন্ত আপনি অপেক্ষা করতে পারেন।

ব্যবহারকারী সাইন ইন করার পর, তাদের কাছে ভ্রমণের আপডেট সম্পর্কে অবহিত করার জন্য একটি আমন্ত্রণপত্র পাঠানো হয়। ব্যবহারকারী আমি আছি বোতামটি চাপার পর, অ্যাপটি নতুন অনুমতির জন্য অনুরোধ করে, যার ফলে সিস্টেম ডায়ালগটি প্রদর্শিত হয়।
চিত্র ১. বিজ্ঞপ্তির অনুমতির অনুরোধের জন্য একটি প্রস্তাবিত ব্যবহারকারী-চালিত কর্মপ্রবাহ। মাঝের স্ক্রিনটি শুধুমাত্র তখনই প্রয়োজনীয় যদি shouldShowRequestPermissionRationale() true প্রদান করে।

প্রেক্ষাপট অনুযায়ী অনুমতির অনুরোধ করুন

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

আপনার উদ্দেশ্যকে স্বচ্ছতা দেওয়ার জন্য এই সুযোগটি ব্যবহার করুন, এবং ব্যবহারকারীরা আপনার অ্যাপটিকে বিজ্ঞপ্তির অনুমতি দেওয়ার সম্ভাবনা বেশি থাকবে।

আপনার অ্যাপ বিজ্ঞপ্তি পাঠাতে পারে কিনা তা পরীক্ষা করুন

আপনার অ্যাপটি কোনও বিজ্ঞপ্তি পাঠানোর আগে, ব্যবহারকারী আপনার অ্যাপের জন্য বিজ্ঞপ্তি সক্ষম করেছেন কিনা তা নিশ্চিত করুন। এটি করার জন্য, areNotificationsEnabled() কল করুন।

অনুমতিটি দায়িত্বের সাথে ব্যবহার করুন

বিজ্ঞপ্তি পাঠানোর অনুমোদন পাওয়ার পর, অনুমতিটি দায়িত্বের সাথে ব্যবহার করতে ভুলবেন না। ব্যবহারকারীরা আপনার অ্যাপটি প্রতিদিন কতগুলি বিজ্ঞপ্তি পাঠায় তা দেখতে পাবেন এবং তারা যেকোনো সময় অনুমতি প্রত্যাহার করতে পারবেন