অ্যান্ড্রয়েড ১১ ব্যবহারকারীদের অবস্থান, মাইক্রোফোন এবং ক্যামেরার জন্য আরও সুনির্দিষ্ট অনুমতি নির্ধারণ করার সুযোগ দেয়। এছাড়াও, সিস্টেম অ্যান্ড্রয়েড ১১ বা তার উচ্চতর সংস্করণের জন্য তৈরি অব্যবহৃত অ্যাপগুলোর অনুমতি রিসেট করে দেয় এবং যেসব অ্যাপ সিস্টেম অ্যালার্ট উইন্ডো ব্যবহার করে বা ফোন নম্বর সম্পর্কিত তথ্য পড়ে, তাদের ঘোষিত অনুমতিগুলো আপডেট করার প্রয়োজন হতে পারে।
এককালীন অনুমতি
অ্যান্ড্রয়েড ১১ থেকে, যখনই আপনার অ্যাপ অবস্থান, মাইক্রোফোন বা ক্যামেরা সম্পর্কিত কোনো অনুমতির জন্য অনুরোধ করে, ব্যবহারকারীর সামনে আসা অনুমতি ডায়ালগ বক্সে ‘শুধুমাত্র এইবার’ নামে একটি বিকল্প থাকে। যদি ব্যবহারকারী ডায়ালগ বক্সে এই বিকল্পটি নির্বাচন করেন, তাহলে আপনার অ্যাপকে একটি অস্থায়ী এককালীন অনুমতি দেওয়া হয়।
সিস্টেমটি কীভাবে এককালীন অনুমতিগুলো পরিচালনা করে সে সম্পর্কে আরও জানুন।
অব্যবহৃত অ্যাপগুলির অনুমতি স্বয়ংক্রিয়ভাবে রিসেট করুন
আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ১১ বা তার উচ্চতর সংস্করণকে টার্গেট করে এবং কয়েক মাস ধরে ব্যবহার না করা হয়, তাহলে সিস্টেম ব্যবহারকারীর দেওয়া সংবেদনশীল রানটাইম পারমিশনগুলো স্বয়ংক্রিয়ভাবে রিসেট করে ব্যবহারকারীর ডেটা সুরক্ষিত রাখে। এই পদক্ষেপটির প্রভাব ঠিক তেমনই, যেন ব্যবহারকারী সিস্টেম সেটিংসে কোনো পারমিশন দেখে আপনার অ্যাপের অ্যাক্সেস লেভেল ' ডিনাই' (Deny) -তে পরিবর্তন করে দিয়েছেন। আপনার অ্যাপ যদি রানটাইমে পারমিশন চাওয়ার সেরা পদ্ধতিগুলো অনুসরণ করে, তাহলে আপনার অ্যাপে কোনো পরিবর্তন করার প্রয়োজন হবে না। এর কারণ হলো, ব্যবহারকারী যখন আপনার অ্যাপের ফিচারগুলো ব্যবহার করেন, তখন আপনার যাচাই করে নেওয়া উচিত যে সেই ফিচারগুলোর প্রয়োজনীয় পারমিশনগুলো আছে কি না।
সিস্টেম কীভাবে অব্যবহৃত অ্যাপের অনুমতি স্বয়ংক্রিয়ভাবে রিসেট করে , সে সম্পর্কে আরও জানুন।
অনুমতি ডায়ালগের দৃশ্যমানতা
অ্যান্ড্রয়েড ১১ থেকে, কোনো ডিভাইসে আপনার অ্যাপটি ইনস্টল থাকা অবস্থায় ব্যবহারকারী যদি কোনো নির্দিষ্ট পারমিশনের জন্য একাধিকবার ‘ডিনাই’ (Deny) ট্যাপ করেন, তাহলে অ্যাপটি আবার সেই পারমিশন চাইলে ব্যবহারকারী সিস্টেম পারমিশন ডায়ালগটি দেখতে পাবেন না। ব্যবহারকারীর এই কাজটি ‘পুনরায় জিজ্ঞাসা করবেন না’ ("don’t ask again") বোঝায়। আগের সংস্করণগুলিতে, ব্যবহারকারী যদি আগে থেকে ‘ডোন্ট আস্ক এগেইন’ ("don’t ask again") চেকবক্স বা অপশনটি বেছে না নিতেন, তবে আপনার অ্যাপ যতবারই কোনো পারমিশন চাইত, ততবারই সিস্টেম পারমিশন ডায়ালগটি দেখতে পেতেন। অ্যান্ড্রয়েড ১১-এর এই আচরণগত পরিবর্তনটি, ব্যবহারকারীরা যে পারমিশনগুলো ‘ডিনাই’ (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 হলো সেই পারমিশনের নাম যা আপনি রিসেট করতে চান। অ্যান্ড্রয়েড অ্যাপ পারমিশনের সম্পূর্ণ তালিকা দেখতে, পারমিশন এপিআই রেফারেন্স পেজটি দেখুন।
আপনার অ্যাপে অনুমতি প্রত্যাখ্যান কীভাবে সামাল দেবেন সে সম্পর্কে আরও জানুন।
সিস্টেম অ্যালার্ট উইন্ডো পরিবর্তন
অ্যান্ড্রয়েড ১১ অ্যাপগুলোকে 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: data` উপেক্ষা করা হয়।
অ্যান্ড্রয়েডের আগের সংস্করণগুলিতে, ACTION_MANAGE_OVERLAY_PERMISSION ইন্টেন্টটি একটি প্যাকেজ নির্দিষ্ট করতে পারত, যা ব্যবহারকারীকে অনুমতি ব্যবস্থাপনার জন্য একটি অ্যাপ-নির্দিষ্ট স্ক্রিনে নিয়ে যেত। অ্যান্ড্রয়েড ১১ থেকে এই কার্যকারিতাটি আর সমর্থিত নয়। এর পরিবর্তে, ব্যবহারকারীকে প্রথমে সেই অ্যাপটি নির্বাচন করতে হবে যেটিকে তিনি অনুমতি দিতে বা প্রত্যাহার করতে চান। এই পরিবর্তনটির উদ্দেশ্য হলো অনুমতি প্রদানকে আরও উদ্দেশ্যমূলক করে ব্যবহারকারীদের সুরক্ষা দেওয়া।
ফোন নম্বর
অ্যান্ড্রয়েড ১১ আপনার অ্যাপের ফোন নম্বর পড়ার জন্য ব্যবহৃত ফোন-সম্পর্কিত অনুমতিতে পরিবর্তন আনে।
আপনার অ্যাপটি যদি অ্যান্ড্রয়েড ১১ বা তার উচ্চতর সংস্করণকে টার্গেট করে এবং নিচের তালিকায় দেখানো ফোন নম্বর এপিআইগুলো অ্যাক্সেস করার প্রয়োজন হয়, তাহলে আপনাকে READ_PHONE_STATE পারমিশনের পরিবর্তে READ_PHONE_NUMBERS পারমিশনের জন্য অনুরোধ করতে হবে।
-
TelephonyManagerক্লাস এবংTelecomManagerক্লাস উভয়টিতেইgetLine1Number()মেথডটি রয়েছে। -
TelephonyManagerক্লাসেgetMsisdn()মেথডটি সমর্থিত নয়।
যদি আপনার অ্যাপ পূর্ববর্তী তালিকার মেথডগুলো ছাড়া অন্য মেথড কল করার জন্য READ_PHONE_STATE ডিক্লেয়ার করে, তাহলে আপনি সমস্ত অ্যান্ড্রয়েড ভার্সনে READ_PHONE_STATE জন্য অনুরোধ করা চালিয়ে যেতে পারেন। তবে, যদি আপনি READ_PHONE_STATE পারমিশনটি শুধুমাত্র পূর্ববর্তী তালিকার মেথডগুলোর জন্য ব্যবহার করেন, তাহলে আপনার ম্যানিফেস্ট ফাইলটি নিম্নরূপভাবে আপডেট করুন:
- আপনার
READ_PHONE_STATEএর ডিক্লারেশনটি পরিবর্তন করুন, যাতে আপনার অ্যাপটি শুধুমাত্র Android 10 (API লেভেল 29) এবং এর নিচের সংস্করণগুলোতে পারমিশনটি ব্যবহার করে। -
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>
অতিরিক্ত সম্পদ
অ্যান্ড্রয়েড ১১-এ পারমিশনের পরিবর্তনগুলো সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিত উপকরণগুলো দেখুন:
ভিডিও
অ্যান্ড্রয়েড ১১-এর সর্বশেষ গোপনীয়তা পরিবর্তনগুলির সাথে উন্নয়ন করা হচ্ছে