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

Android 13 (API স্তর 33) এবং উচ্চতর একটি অ্যাপ থেকে অ-মুক্ত (ফোরগ্রাউন্ড পরিষেবা (FGS) সহ) বিজ্ঞপ্তি পাঠানোর জন্য একটি রানটাইম অনুমতি সমর্থন করে: POST_NOTIFICATIONS । এই পরিবর্তন ব্যবহারকারীদের তাদের জন্য সবচেয়ে গুরুত্বপূর্ণ বিজ্ঞপ্তিগুলিতে ফোকাস করতে সহায়তা করে৷

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

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

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

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

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

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

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

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

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

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

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

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

সতর্কতা: যদি আপনার অ্যাপটি 12L বা তার থেকে কম লক্ষ্য করে এবং ব্যবহারকারী ডোন্ট অ্যাঞ্জে ট্যাপ করে, এমনকি একবারও, নিম্নলিখিতগুলির মধ্যে একটি না হওয়া পর্যন্ত তাদের আবার অনুরোধ করা হবে না :

  • ব্যবহারকারী আপনার অ্যাপ আনইনস্টল এবং পুনরায় ইনস্টল করে।
  • আপনি অ্যান্ড্রয়েড 13 বা উচ্চতর টার্গেট করতে আপনার অ্যাপ আপডেট করুন।

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

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

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

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

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

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

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

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

অনুমতি প্রাক অনুদান জন্য যোগ্যতা

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

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

ছাড়

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

মিডিয়া সেশন

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

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

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

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

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

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

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

  • অ্যাপ্লিকেশানটি এমন একটি ডিভাইসে নতুন ইনস্টল করা হয়েছে যা Android 13 বা উচ্চতর সংস্করণে চলে:

    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
  • ব্যবহারকারী যখন 12L বা তার নিচে চলে এমন একটি ডিভাইসে অ্যাপটি ইনস্টল করা থাকে তখন বিজ্ঞপ্তিগুলি সক্রিয় রাখে, তারপর ডিভাইসটি Android 13 বা উচ্চতর সংস্করণে আপগ্রেড হয়:

    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
  • ব্যবহারকারী ম্যানুয়ালি বিজ্ঞপ্তিগুলি অক্ষম করে দেয় যখন অ্যাপটি এমন একটি ডিভাইসে ইনস্টল করা হয় যা 12L বা তার নিচে চলে, তারপর ডিভাইসটি Android 13 বা উচ্চতর সংস্করণে আপগ্রেড হয়:

    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 বা তার উচ্চতরকে লক্ষ্য করে।

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

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

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

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

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

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

ব্যবহারকারী সাইন ইন করার পরে, তাদের ট্রিপ আপডেটের বিজ্ঞপ্তি পাওয়ার জন্য একটি আমন্ত্রণ জানানো হয়। ব্যবহারকারী I'm in বোতাম টিপানোর পরে, অ্যাপটি নতুন অনুমতির জন্য অনুরোধ করে, যার ফলে সিস্টেম ডায়ালগ দেখা যায়
চিত্র 1. বিজ্ঞপ্তি অনুমতির অনুরোধের জন্য একটি প্রস্তাবিত ব্যবহারকারী-চালিত কর্মপ্রবাহ। মাঝামাঝি স্ক্রীনটি কেবল তখনই প্রয়োজনীয় যদি shouldShowRequestPermissionRationale() true ফিরে আসে।

প্রসঙ্গে অনুমতির অনুরোধ করুন

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

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

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

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

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

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