Android 13-এ বিজ্ঞপ্তি অপ্ট-ইন মডেল ব্যবহার করে, যা আগের Android ভার্সন থেকে আলাদা, কারণ সেগুলি অপ্ট-আউট মডেল ব্যবহার করে। Android 13-এ, বিজ্ঞপ্তি প্রম্পট পাঠানোর আগে সব অ্যাপকে অবশ্যই ব্যবহারকারীর কাছে অনুমতি চাইতে হবে। এই মডেলটি বিজ্ঞপ্তি জনিত বাধা কমায়, তথ্যের অতিভার কমায় এবং ব্যবহারকারীদের কাছে কোন বিজ্ঞপ্তি দেখানো হবে তা নিয়ন্ত্রণ করতে সাহায্য করে। এটি ব্যবহারকারীদের কাছে গুরুত্বপূর্ণ বিষয়ের উপর ভিত্তি করে বিজ্ঞপ্তি দেখায়। অপ্ট-ইন মডেলকে সমর্থন করতে, OEM-কে বিজ্ঞপ্তি এবং রানটাইম অনুমতি সিস্টেমে পরিবর্তনগুলি প্রয়োগ করতে হবে।
এই পরিবর্তন কাজ করানোর জন্য OEM-দের কী কী প্রয়োগ করতে হবে এবং কীভাবে প্রয়োগ করা হয়েছে তা যাচাই করতে হবে, এই পৃষ্ঠায় তার বিবরণ দেওয়া আছে।
বিজ্ঞপ্তি অপ্ট-ইন করার জন্য পরিবর্তন প্রয়োগ করা
Android 13 থেকে শুরু করে, বিজ্ঞপ্তি পাঠানোর জন্য অ্যাপকে অবশ্যই তার উদ্দেশ্য ঘোষণা করতে হবে।
এর জন্য, বিজ্ঞপ্তি পাঠানোর আগে সিস্টেমের কাছে android.permission.POST_NOTIFICATION
রানটাইম অনুমতি চেয়ে নিতে হবে।
Android 13 ও তার পরবর্তী ভার্সনে, কোনও অ্যাপ ব্যবহারকারীকে বিজ্ঞপ্তি পাঠাতে পারবে কিনা তা নির্ধারণকারী সেটিং অনুমতি সিস্টেমে স্টোর করা থাকে। Android 13-এর আগে, এই সেটিং বিজ্ঞপ্তি সিস্টেমে সেভ করা হত। তাই, কোনও অ্যাপকে বিজ্ঞপ্তি পাঠানোর অনুমতি দেওয়া হয়েছে কিনা সেই সম্পর্কে বিদ্যমান বিজ্ঞপ্তি ডেটা বিজ্ঞপ্তি সিস্টেম থেকে রানটাইম অনুমতি সিস্টেমে OEM-কে অবশ্যই মাইগ্রেট করতে হবে। এছাড়াও, OEM-কে অবশ্যই বিজ্ঞপ্তি সিস্টেমে আগে থেকে থাকা API ম্যানেজ করতে হবে যা অ্যাপ ডেভেলপারদের কাছে সেই ডেটা সারফেস করে।
বিজ্ঞপ্তি ও অনুমতি সিস্টেমে করা পরিবর্তনগুলি ব্যবহারকারীর বিজ্ঞপ্তি সংক্রান্ত আচরণের অপ্ট-ইন মডেলের উপর ভিত্তি করে করা হয় এবং এগুলি কার্যকর করার নির্দেশিকা বিভাগে বর্ণনা করা আছে।
অপট-ইন মডেলে ব্যবহারকারীর বিজ্ঞপ্তি সংক্রান্ত আচরণ
Android 13 অপারেটিং সিস্টেমের ডিভাইসে বিভিন্ন অ্যাপ ভার্সনের জন্য বিজ্ঞপ্তি কীভাবে কাজ করে তা নিম্নলিখিত সারণীতে দেখানো হয়েছে:
| Android 13 ভার্সন সহ ডিভাইস | Android 13 বা এর পরের যেকোনও ভার্সনকে টার্গেট করা অ্যাপ | Android 13-এর আগের যেকোনও ভার্সনকে টার্গেট করা অ্যাপ |
|---|---|---|
| নতুন ইনস্টল | অ্যাপ থেকে প্রম্পট না করা পর্যন্ত বিজ্ঞপ্তি ব্লক করা থাকে।
অনুমতি চাওয়ার সময় অ্যাপ নিয়ন্ত্রণ করে। |
OS-এর মাধ্যমে প্রম্পট না করা পর্যন্ত বিজ্ঞপ্তি ব্লক করা থাকে।
অ্যাপ প্রথমবার চালানোর সময় অনুমতি চাওয়া হয়। |
| আগে থেকে থাকা অ্যাপ (আপগ্রেড) | অ্যাপ প্রম্পট না করা পর্যন্ত বিজ্ঞপ্তি পাঠানোর অনুমতি দেওয়া হয়।
প্রথমবার উপযুক্ত রান করার সময় অ্যাপ না জিজ্ঞাসা করা পর্যন্ত সাময়িক অনুমতি দেওয়া হয়। |
OS প্রম্পট না করা পর্যন্ত বিজ্ঞপ্তি দেখানোর অনুমতি দেওয়া হয়।
অ্যাপ প্রথমবার রান করা পর্যন্ত সাময়িক অনুমতি দেওয়া হয়। |
প্রয়োগ করার নির্দেশিকা
রেফারেন্স ইমপ্লিমেন্টেশনের জন্য, বিজ্ঞপ্তি পরিষেবা, অনুমতি পরিষেবা এবং নীতি পরিষেবা দেখুন। ডিফল্ট অনুমতি হ্যান্ডলারের জন্য ব্যতিক্রম প্রয়োগ করতে রানটাইম অনুমতি দেখুন।
Android 13 বা এর আগের SDK টার্গেট করা অ্যাপের ক্ষেত্রে প্রয়োগ করার সময়, ব্যবহারকারীর বিজ্ঞপ্তি আচরণ সংক্রান্ত নিম্নলিখিত নির্দেশিকা ব্যবহার করুন:
- Android 13 ডিভাইসে নতুন ইনস্টল করা অ্যাপকে অবশ্যই
ব্যবহারকারীর অনুমতি প্রম্পট অনুমোদন করা ছাড়া বিজ্ঞপ্তি পাঠাতে পারবে না।
- অ্যাপটি Android 13 এবং এর পরের যেকোনও ভার্সনকে টার্গেট করলে, অ্যাপের প্রম্পট না করা পর্যন্ত বিজ্ঞপ্তি ব্লক করতে হবে, কারণ অ্যাপ কখন এবং ব্যবহারকারীর অনুমতি চাওয়া হবে কিনা তা নিয়ন্ত্রণ করে।
- অ্যাপটি যদি Android 13-এর নিচের যেকোনও ভার্সনকে টার্গেট করে, তাহলে OS প্রম্পট না করা পর্যন্ত বিজ্ঞপ্তি ব্লক করতে হবে। অ্যাপটি প্রথমবার চালানোর সময় OS-কে অবশ্যই অনুমতি সংক্রান্ত প্রম্পট দেখাতে হবে।
Android 13-এ আপগ্রেড করার আগে ডিভাইসে থাকা যেকোনও অ্যাপ অথবা ব্যাক-আপ ও রিস্টোরের মাধ্যমে রিস্টোর করা যেকোনও অ্যাপকে বিজ্ঞপ্তি পাঠানোর অনুমতি দিতে হবে, যতক্ষণ না ব্যবহারকারী প্রথমবার সেই অ্যাপ থেকে কোনও অ্যাক্টিভিটি লঞ্চ করছেন।
Android 13 এবং তার পরবর্তী ভার্সনের SDK-কে টার্গেট করে এমন অ্যাপের ক্ষেত্রে, ব্যবহারকারী যদি আগে অ্যাপ বা
NotificationChannelলেভেলে এই অ্যাপের জন্য বিজ্ঞপ্তি সেটিংস কাস্টমাইজ না করে থাকেন, তাহলে সাময়িক অনুমতির সুবিধা প্রত্যাহার করুন। তারপর, বিজ্ঞপ্তি পাঠানো চালিয়ে যাওয়ার অনুমতি দেওয়ার আগে অ্যাপকে অবশ্যই ব্যবহারকারীর কাছে অনুমতি চাইতে হবে।Android 13-এর জন্য টার্গেট করা কোনও আপগ্রেড করা অ্যাপে যদি সাময়িক আপগ্রেড গ্র্যান্টের মাধ্যমে বর্তমানে বিজ্ঞপ্তি সংক্রান্ত অনুমতি না থাকে এবং ব্যবহারকারী যদি এটি অন্তত একবার লঞ্চ করে থাকেন, তাহলে অ্যাপটিকে অবশ্যই আরও কোনও ফোরগ্রাউন্ড পরিষেবা চালানোর অনুমতি দেওয়ার আগে বিজ্ঞপ্তি সংক্রান্ত অনুমতি প্রম্পট দেখাতে হবে।
যেসব অ্যাপের টার্গেট SDK ভার্সন Android 13-এর নিচের ভার্সন, সেইসব অ্যাপের ক্ষেত্রে, অ্যাপ অন্তত একটি
NotificationChannelতৈরি করার পরে প্রথম অ্যাক্টিভিটি লঞ্চ করার সময় ইন্টারসেপ্ট করে অনুমতি সংক্রান্ত প্রম্পট দেখানো হয়। এই প্রম্পটে ব্যবহারকারীকে জিজ্ঞেস করা হয় যে তিনি অ্যাপ থেকে বিজ্ঞপ্তি পেতে চান কিনা।আপগ্রেড করা ডিভাইসে কোনও অ্যাপের জন্য অথবা ডিভাইসে রিস্টোর করা হচ্ছে এমন ব্যাক-আপে কোনও ব্যবহারকারী আগে থেকেই অ্যাপ বা
NotificationChannelলেভেলে বিজ্ঞপ্তি সেটিংস কাস্টমাইজ করে থাকলে,FLAG_PERMISSION_USER_SETফ্ল্যাগ সহ অ্যাপ লেভেল সেটিংসকে অবশ্যই অনুমতি সিস্টেমে মাইগ্রেট করতে হবে। অ্যাপটি বিশেষভাবে না চাইলে ব্যবহারকারীকে আর কোনও বিজ্ঞপ্তির অনুমতি সংক্রান্ত প্রম্পট দেখানো যাবে না।
ব্যাক-আপ ও রিস্টোর করার সুবিধা Android 13 ডিভাইস এবং আগের OS ভার্সনের ডিভাইসের মধ্যে ব্যাকওয়ার্ড ও ফরওয়ার্ড কম্প্যাটিবল হতে হবে। Android 13 ডিভাইস থেকে তৈরি ব্যাক-আপ ডেটা অবশ্যই আগের OS ভার্সনে রিস্টোর করতে হবে এবং আগের OS ভার্সন থেকে ব্যাক-আপ ডেটা অবশ্যই Android 13 ডিভাইসে রিস্টোর করতে হবে।
চলমান মিডিয়া প্লেব্যাকের সাথে যুক্ত মিডিয়া বিজ্ঞপ্তিগুলি অবশ্যই বিজ্ঞপ্তির অনুমতি থেকে অব্যাহতিপ্রাপ্ত হতে হবে।
বিজ্ঞপ্তি ও অনুমতি সিস্টেমে করা পরিবর্তন যাচাই করা
প্রয়োগ করা হয়েছে কিনা তা যাচাই করতে, নিম্নলিখিত পরীক্ষাগুলি চালান:
PreferencesHelperTest,NotificationManagerServiceTest-এ উল্লেখ করা ইউনিট টেস্ট।আপগ্রেড, ব্যাক-আপ ও রিস্টোর পরীক্ষা করে এমন যেকোনও ম্যানুয়াল টেস্ট।
বিজ্ঞপ্তি পাঠায় এমন কোনও CTS অনুমতি ও বিজ্ঞপ্তি সিস্টেম টেস্ট। এইসব পরীক্ষার মধ্যে কিছু পরীক্ষা cts/tests/tests/permission/, NotificationManagerTest.java, এবং cts/tests/tests/notificationlegacy/-এ অবস্থিত।