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

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

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

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

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

অব্যবহৃত অ্যাপ থেকে অনুমতিগুলি অটো-রিসেট করুন

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

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

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

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

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

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 হল সেই অনুমতির নাম যা আপনি রিসেট করতে চান। Android অ্যাপের অনুমতির সম্পূর্ণ তালিকা দেখতে, permissions API রেফারেন্স পৃষ্ঠাটি দেখুন।

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

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

অ্যান্ড্রয়েড ১১ অ্যাপগুলিকে 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 ইন্টেন্টগুলি সর্বদা ব্যবহারকারীকে সিস্টেম অনুমতি স্ক্রিনে নিয়ে আসে

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

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

ফোন নম্বর

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

যদি আপনার অ্যাপটি Android 11 বা তার পরবর্তী ভার্সনের জন্য উপযুক্ত হয় এবং নিম্নলিখিত তালিকায় দেখানো ফোন নম্বর API গুলি অ্যাক্সেস করার প্রয়োজন হয়, তাহলে আপনাকে READ_PHONE_STATE অনুমতির পরিবর্তে READ_PHONE_NUMBERS অনুমতির জন্য অনুরোধ করতে হবে।

  • TelephonyManager ক্লাস এবং TelecomManager ক্লাস উভয়ের ক্ষেত্রেই getLine1Number() পদ্ধতি।
  • 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>

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

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

ভিডিও

অ্যান্ড্রয়েড ১১-এর সর্বশেষ গোপনীয়তা পরিবর্তনের সাথে উন্নয়নশীল