Android 11-এ অনুমতি আপডেট

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

এককালীন অনুমতি

অ্যান্ড্রয়েড 11 থেকে শুরু করে, যখনই আপনার অ্যাপ লোকেশন, মাইক্রোফোন বা ক্যামেরা সম্পর্কিত অনুমতির অনুরোধ করে, ব্যবহারকারী-মুখী অনুমতি ডায়ালগে শুধুমাত্র এই সময় নামে একটি বিকল্প থাকে। ব্যবহারকারী ডায়ালগে এই বিকল্পটি নির্বাচন করলে, আপনার অ্যাপটিকে একটি অস্থায়ী এক-বারের অনুমতি দেওয়া হবে।

সিস্টেমটি কীভাবে এককালীন অনুমতিগুলি পরিচালনা করে সে সম্পর্কে আরও জানুন৷

অব্যবহৃত অ্যাপ থেকে স্বয়ংক্রিয়ভাবে পুনরায় সেট করার অনুমতি

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

সিস্টেম কীভাবে অব্যবহৃত অ্যাপগুলির অনুমতিগুলি স্বয়ংক্রিয়ভাবে পুনরায় সেট করে সে সম্পর্কে আরও জানুন৷

অনুমতি ডায়ালগ দৃশ্যমানতা

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

একটি অ্যাপ্লিকেশন স্থায়ীভাবে অনুমতি অস্বীকার করা হয়েছে কিনা তা সনাক্ত করতে (ডিবাগিং এবং পরীক্ষার উদ্দেশ্যে), নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

adb shell dumpsys package PACKAGE_NAME

যেখানে PACKAGE_NAME পরিদর্শনের জন্য প্যাকেজের নাম৷

কমান্ডের আউটপুটে এমন বিভাগ রয়েছে যা দেখতে এইরকম:

...
runtime permissions:
  android.permission.POST_NOTIFICATIONS: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
  android.permission.ACCESS_FINE_LOCATION: granted=false, flags=[ USER_SET|USER_FIXED|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
  android.permission.BLUETOOTH_CONNECT: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
...

ব্যবহারকারীর দ্বারা একবার অস্বীকার করা অনুমতিগুলি USER_SET দ্বারা পতাকাঙ্কিত হয়৷ দুইবার অস্বীকার নির্বাচন করে স্থায়ীভাবে অস্বীকার করা অনুমতিগুলি USER_FIXED দ্বারা পতাকাঙ্কিত হয়৷

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

adb shell pm clear-permission-flags PACKAGE_NAME PERMISSION_NAME user-set user-fixed

PERMISSION_NAME হল সেই অনুমতির নাম যা আপনি পুনরায় সেট করতে চান৷ অ্যান্ড্রয়েড অ্যাপের অনুমতিগুলির একটি সম্পূর্ণ তালিকা দেখতে, অনুমতি API রেফারেন্স পৃষ্ঠাতে যান।

আপনার অ্যাপে অনুমতি অস্বীকার কীভাবে পরিচালনা করবেন সে সম্পর্কে আরও জানুন।

সিস্টেম সতর্কতা উইন্ডো পরিবর্তন

Android 11 অ্যাপগুলিকে কীভাবে SYSTEM_ALERT_WINDOW অনুমতি দেওয়া হয় তাতে বেশ কিছু পরিবর্তন করে৷ পরিবর্তনগুলি অনুমতি প্রদানকে আরও ইচ্ছাকৃত করে ব্যবহারকারীদের রক্ষা করার উদ্দেশ্যে করা হয়েছে৷

অনুরোধের ভিত্তিতে কিছু অ্যাপ স্বয়ংক্রিয়ভাবে SYSTEM_ALERT_WINDOW অনুমতি দেওয়া হয়

অনুরোধের ভিত্তিতে কিছু নির্দিষ্ট শ্রেণীর অ্যাপগুলিকে স্বয়ংক্রিয়ভাবে SYSTEM_ALERT_WINDOW অনুমতি দেওয়া হয়:

  • ROLE_CALL_SCREENING আছে এবং SYSTEM_ALERT_WINDOW অনুরোধ করে এমন যেকোনো অ্যাপ স্বয়ংক্রিয়ভাবে অনুমতি দেওয়া হয়। অ্যাপটি ROLE_CALL_SCREENING হারালে, এটি অনুমতি হারায়৷

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

SYSTEM_ALERT_WINDOW অনুমতি পেতে এই অ্যাপগুলিকে ACTION_MANAGE_OVERLAY_PERMISSION পাঠাতে হবে না; অ্যাপগুলি সরাসরি SYSTEM_ALERT_WINDOW অনুরোধ করতে পারে৷

MANAGE_OVERLAY_PERMISSION ইন্টেন্টগুলি সর্বদা ব্যবহারকারীকে সিস্টেম অনুমতি স্ক্রিনে নিয়ে আসে

অ্যান্ড্রয়েড 11 থেকে শুরু করে, ACTION_MANAGE_OVERLAY_PERMISSION উদ্দেশ্যগুলি সর্বদা ব্যবহারকারীকে শীর্ষ-স্তরের সেটিংস স্ক্রিনে নিয়ে আসে, যেখানে ব্যবহারকারী অ্যাপগুলির জন্য SYSTEM_ALERT_WINDOW অনুমতিগুলি মঞ্জুর বা প্রত্যাহার করতে পারে৷ কোনো package: উদ্দেশ্য তথ্য উপেক্ষা করা হয়.

Android এর আগের সংস্করণগুলিতে, ACTION_MANAGE_OVERLAY_PERMISSION উদ্দেশ্য একটি প্যাকেজ নির্দিষ্ট করতে পারে, যা ব্যবহারকারীকে অনুমতি পরিচালনার জন্য একটি অ্যাপ-নির্দিষ্ট স্ক্রিনে নিয়ে আসবে৷ এই কার্যকারিতাটি অ্যান্ড্রয়েড 11-এ সমর্থিত নয়৷ পরিবর্তে, ব্যবহারকারীকে প্রথমে যে অ্যাপটি তারা মঞ্জুর করতে বা অনুমতি প্রত্যাহার করতে চান সেটি নির্বাচন করতে হবে৷ এই পরিবর্তনটি অনুমতি প্রদানকে আরও ইচ্ছাকৃত করে ব্যবহারকারীদের সুরক্ষার উদ্দেশ্যে করা হয়েছে৷

ফোন নম্বর

Android 11 ফোন-সম্পর্কিত অনুমতি পরিবর্তন করে যা আপনার অ্যাপ ফোন নম্বর পড়ার সময় ব্যবহার করে।

যদি আপনার অ্যাপটি Android 11 বা উচ্চতরকে লক্ষ্য করে এবং নিম্নলিখিত তালিকায় দেখানো ফোন নম্বর APIগুলি অ্যাক্সেস করতে চায়, তাহলে আপনাকে অবশ্যই READ_PHONE_STATE অনুমতির পরিবর্তে READ_PHONE_NUMBERS অনুমতির অনুরোধ করতে হবে৷

  • getLine1Number() পদ্ধতি TelephonyManager ক্লাস এবং TelecomManager ক্লাস উভয় ক্ষেত্রেই।
  • TelephonyManager ক্লাসে অসমর্থিত getMsisdn() পদ্ধতি।

যদি আপনার অ্যাপ READ_PHONE_STATE পূর্ববর্তী তালিকায় থাকা পদ্ধতিগুলি ছাড়া কল করার পদ্ধতি ঘোষণা করে, তাহলে আপনি সমস্ত Android সংস্করণ জুড়ে READ_PHONE_STATE অনুরোধ করা চালিয়ে যেতে পারেন৷ আপনি যদি শুধুমাত্র পূর্ববর্তী তালিকার পদ্ধতিগুলির জন্য READ_PHONE_STATE অনুমতি ব্যবহার করেন তবে, আপনার ম্যানিফেস্ট ফাইলটি নিম্নরূপ আপডেট করুন:

  1. আপনার READ_PHONE_STATE এর ঘোষণা পরিবর্তন করুন যাতে আপনার অ্যাপ শুধুমাত্র Android 10 (API লেভেল 29) এবং তার নিচের অনুমতি ব্যবহার করে।
  2. READ_PHONE_NUMBERS অনুমতি যোগ করুন।

নিম্নলিখিত ম্যানিফেস্ট ঘোষণা স্নিপেট এই প্রক্রিয়া প্রদর্শন করে:

<manifest>
    <!-- Grants the READ_PHONE_STATE permission only on devices that run
         Android 10 (API level 29) and lower. -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"
                     android:maxSdkVersion="29" />
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
</manifest>

অতিরিক্ত সম্পদ

অ্যান্ড্রয়েড 11-এ অনুমতির পরিবর্তন সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিত উপকরণগুলি দেখুন:

ভিডিও

অ্যান্ড্রয়েড 11-এ সাম্প্রতিক গোপনীয়তা পরিবর্তনের সাথে বিকাশ করা হচ্ছে