কম্প্যাটিবিলিটি ফ্রেমওয়ার্কে পরিবর্তন (Android ১১)

এই পৃষ্ঠায় অ্যাপের উপর প্রভাব ফেলে এমন প্রতিটি আচরণগত পরিবর্তন সম্পর্কে বর্ণনা করা হয়েছে যা Android ১১ (API লেভেল ৩০)-এর কম্প্যাটিবিলিটি ফ্রেমওয়ার্কে যোগ করা হয়েছে। Android 11-কে টার্গেট করার জন্য আপনার অ্যাপ প্রস্তুত করার সময়, সেটি পরীক্ষা ও ডিবাগ করতে, ডেভেলপার বিকল্প ও ADB কমান্ড-এর সাথে এই তালিকা ব্যবহার করুন।

ADD_CONTENT_OBSERVER_FLAGS

পরিবর্তন আইডি: 150939131

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11-কে টার্গেট করা অ্যাপের জন্য, একটি নতুন পাবলিক API ওভারলোড আছে onChange(boolean, Uri, int) যার মধ্যে একটি ইন্টিজার flags আর্গুমেন্ট আছে।

এই নতুন পদ্ধতিটি হল নন-SDK onChange() ওভারলোড করা পদ্ধতি ব্যবহার করে এমন অ্যাপের জন্য একটি সর্বজনীন SDK বিকল্প, যার মধ্যে একটি ইন্টিজার userId আর্গুমেন্ট অন্তর্ভুক্ত থাকে।

ADMIN_APP_PASSWORD_COMPLEXITY

পরিবর্তন আইডি: 123562444

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11-কে টার্গেট করা অ্যাডমিন অ্যাপের ক্ষেত্রে, কোনও অ্যাপ বর্তমানে অ্যাসাইন করা পাসওয়ার্ড কোয়ালিটির সাথে প্রাসঙ্গিক নয় এমন পাসওয়ার্ডের প্রয়োজনীয়তা সেট করলে, সমস্যা দেখান। যেমন, পাসওয়ার্ডের কোয়ালিটি DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED হিসেবে সেট করা থাকলে, কোনও অ্যাপ পাসওয়ার্ডের ন্যূনতম দৈর্ঘ্য সেট করতে পারবে না। এই ক্ষেত্রে, পাসওয়ার্ডের ন্যূনতম দৈর্ঘ্য সেট করার চেষ্টা করার আগে, অ্যাপকে প্রথমে setPasswordQuality() পদ্ধতি কল করতে হবে এবং শুধুমাত্র তারপরেই setPasswordMinimumLength() পদ্ধতি কল করতে হবে।

এছাড়াও, Android 11 টার্গেট করা কোনও অ্যাডমিন অ্যাপ পাসওয়ার্ডের কোয়ালিটি কমিয়ে দিলে, আগে থেকে থাকা পাসওয়ার্ডের প্রয়োজনীয়তা যা আর প্রযোজ্য নয়, তা ডিফল্ট মানে রিসেট হয়ে যায়।

APP_DATA_DIRECTORY_ISOLATION

পরিবর্তন আইডি: 143937733

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১১-কে টার্গেট করে তৈরি করা অ্যাপ, অন্য অ্যাপের টার্গেট SDK ভার্সন যাই হোক না কেন, যেকোনও অ্যাপের ব্যক্তিগত ডেটা ডিরেক্টরির ফাইল আর অ্যাক্সেস করতে পারবে না।

আরও জানতে, ব্যক্তিগত ডিরেক্টরি অ্যাক্সেস করা দেখুন।

APN_READING_PERMISSION_CHANGE_ID

পরিবর্তন আইডি: 124107808

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11-কে টার্গেট করা অ্যাপের জন্য, APN ডেটাবেস অ্যাক্সেস করতে এখন Manifest.permission.WRITE_APN_SETTINGS অনুমতি প্রয়োজন।

এই পরিবর্তন সম্পর্কে আরও জানতে, APN ডেটাবেসে সীমিত রিড অ্যাক্সেস দেখুন।

BACKGROUND_RATIONALE_CHANGE_ID

পরিবর্তন আইডি: 147316723

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

অ্যাপকে এখন ব্যাকগ্রাউন্ডে ডিভাইসের লোকেশন অ্যাক্সেস করার অনুরোধ করার সময় অবশ্যই একটি বৈধ যুক্তি প্রদান করতে হবে।

এই পরিবর্তন সম্পর্কে আরও জানতে, Android 11-এ ব্যাকগ্রাউন্ড লোকেশন অ্যাক্সেস করা সম্পর্কিত নির্দেশিকা দেখুন, যেখানে Android 11-এ লোকেশন সংক্রান্ত গোপনীয়তা পরিবর্তন নিয়ে আলোচনা করা হয়েছে।

CALLBACK_ON_CLEAR_CHANGE

পরিবর্তন আইডি: 119147584

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

যখনই Editor.clear কল করা হয়, তখন null কী সহ OnSharedPreferenceChangeListener.onSharedPreferenceChanged -এ একটি কলব্যাক করা হয়।

এই পরিবর্তন সম্পর্কে আরও জানতে, OnSharedPreferenceChangeListener-এর জন্য কলব্যাক পরিবর্তন দেখুন।

CALLBACK_ON_MORE_ERROR_CODE_CHANGE

পরিবর্তন আইডি: 130595455

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

updateAvailableNetworks(List, Executor, Consumer) এবং setPreferredOpportunisticDataSubscription(int, boolean, Executor, Consumer)-এর জন্য এখন ত্রুটি কোড বড় করা হয়েছে।

CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE

পরিবর্তন আইডি: 148180766

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

এটি startWatchingMode(String, String, AppOpsManager.OnOpChangedListener)-এর আচরণে একটি সূক্ষ্ম পরিবর্তন। এই পরিবর্তনের আগে সিস্টেমটি সুইচ করা অপারেশনের জন্য কলব্যাক করেছিল। পরিবর্তনের পরে সিস্টেমটি আসলে অনুরোধ করা অপারেশনের জন্য কলব্যাক করবে বা কোনও অপারেশন নির্দিষ্ট না থাকলে সমস্ত সুইচ করা অপারেশনের জন্য কলব্যাক করবে।

CAMERA_MICROPHONE_CAPABILITY_CHANGE_ID

পরিবর্তন আইডি: 136219221

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11-কে টার্গেট করা অ্যাপের ক্ষেত্রে, ফোরগ্রাউন্ড পরিষেবা শুধুমাত্র ব্যবহার করার সময় ক্যামেরা ও মাইক্রোফোন অ্যাক্সেস করার ক্ষমতা পায় যখন R.attr.foregroundServiceType এবং ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE ম্যানিফেস্ট ফাইলে যথাক্রমে ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA হিসেবে কনফিগার করা হয়। Android-এর আগের ভার্সনে, ফোরগ্রাউন্ড সার্ভিস অটোমেটিক ক্যামেরা ও মাইক্রোফোন অ্যাক্সেস করার ক্ষমতা পেত।

এই পরিবর্তন সম্পর্কে আরও জানতে, Android 11-এ ফোরগ্রাউন্ড পরিষেবার ধরন দেখুন।

CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK

পরিবর্তন আইডি: 128611929

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

অ্যাপগুলি আর ব্যাকগ্রাউন্ডে কাস্টম টোস্ট পোস্ট করতে পারবে না। তবে, ব্যাকগ্রাউন্ডে থাকাকালীন অ্যাপগুলি এখনও Toast.makeText(Context, CharSequence, int) পদ্ধতি এবং এর ভেরিয়েন্ট ব্যবহার করে টোস্ট পোস্ট করতে পারে।

এই পরিবর্তন সম্পর্কে আরও জানতে, কাস্টম টোস্ট ভিউ ব্লক করা হয়েছে দেখুন।

CHANGE_RESTRICT_SAW_INTENT

পরিবর্তন আইডি: 135920175

ডিফল্ট স্ট্যাটাস: এই পরিবর্তন টগল করা যাবে না। এটি শুধুমাত্র কম্প্যাটিবিলিটি ফ্রেমওয়ার্কের মাধ্যমে লগ করা হয়।

android.settings.MANAGE_APP_OVERLAY_PERMISSION অ্যাকশন এবং package ডেটা URI স্কিম ব্যবহার করে ইনটেন্ট আর ব্যবহারকারীকে সংশ্লিষ্ট অনুমতি ম্যানেজ করার জন্য অ্যাপ-নির্দিষ্ট স্ক্রিনে নিয়ে যায় না। পরিবর্তে, ব্যবহারকারীকে এমন একটি স্ক্রিনে নিয়ে যাওয়া হয় যেখানে তিনি অনুমতি চাওয়া সব অ্যাপ ম্যানেজ করতে পারেন।

CHANGE_TEXT_TOASTS_IN_THE_SYSTEM

পরিবর্তন আইডি: 147798919

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

টেক্সট টোস্ট এখন অ্যাপের পরিবর্তে SystemUI দ্বারা রেন্ডার করা হয়। এটি অ্যাপকে ব্যাকগ্রাউন্ডে কাস্টম টোস্ট পোস্ট করার উপর বিধিনিষেধ এড়াতে বাধা দেয়।

DEFAULT_SCOPED_STORAGE

পরিবর্তন আইডি: 149924527

ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য চালু করা আছে।

Android 11-কে টার্গেট করা সব অ্যাপ এখন ডিফল্ট হিসেবে স্কোপড স্টোরেজ ব্যবহার করে এবং আর স্কোপড স্টোরেজ থেকে অপ্ট-আউট করতে পারবে না।

তবে, এই পরিবর্তন বন্ধ করার জন্য টগল করে, আপনার অ্যাপের টার্গেট SDK ভার্সন এবং ম্যানিফেস্ট ফ্ল্যাগ ভ্যালু যাই হোক না কেন, আপনি স্কোপড স্টোরেজ ছাড়াই আপনার অ্যাপ পরীক্ষা করতে পারেন।

Android 11-এ স্কোপড স্টোরেজে হওয়া পরিবর্তন সম্পর্কে আরও জানতে, Android 11-এ Android স্টোরেজে হওয়া পরিবর্তন সম্পর্কে পৃষ্ঠায় স্কোপড স্টোরেজ বিভাগটি দেখুন।

EMPTY_INTENT_ACTION_CATEGORY

পরিবর্তন আইডি: 151163173

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১১-কে টার্গেট করা অ্যাপের ক্ষেত্রে, সিস্টেম এখন একটি সমস্যা দেখায় যদি কোনও ইনটেন্ট ফিল্টারের action বা category একটি খালি স্ট্রিং হয়। Android 11-এর আগের প্ল্যাটফর্মে একটি বাগ থাকার কারণে এই কেসটি কোনও সমস্যা ছাড়াই পাস হয়ে গেছে। মনে রাখবেন যে, অ্যাট্রিবিউটটি শূন্য বা অনুপস্থিত থাকলে এটি সেইসব ক্ষেত্রে প্রযোজ্য নয়, কারণ এটি সবসময় একটি ত্রুটি দেখায়।

FILTER_APPLICATION_QUERY

পরিবর্তন আইডি: 135549675

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

কোনও ডিভাইসে অন্যান্য অ্যাপ সম্পর্কে বিবরণ পাওয়ার আগে, অ্যাপকে এখন প্যাকেজ ও ইনটেন্ট ঘোষণা করতে হবে যা তারা ব্যবহার করতে চায়। এই ধরনের ঘোষণা অবশ্যই অ্যাপের ম্যানিফেস্টে <queries> ট্যাগ ব্যবহার করে করতে হবে।

Android ১১-এ ইনস্টল করা অন্যান্য অ্যাপের সাথে কীভাবে কোয়েরি ও ইন্টার‍্যাক্ট করতে হয় সেই সম্পর্কে আরও জানতে, প্যাকেজ দৃশ্যমানতা গোপনীয়তা পৃষ্ঠা দেখুন।

FORCE_ENABLE_SCOPED_STORAGE

Change ID: Value: 132649864

ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

Android 11-কে টার্গেট করা সব অ্যাপ এখন ডিফল্ট হিসেবে স্কোপড স্টোরেজ ব্যবহার করে এবং আর স্কোপড স্টোরেজ থেকে অপ্ট-আউট করতে পারবে না।

তবে, আপনার অ্যাপ এখনও Android 10 (API লেভেল ২৯) বা তার নিচের ভার্সনকে টার্গেট করলে, আপনি এই পরিবর্তন টগল করে, অ্যাপের টার্গেট SDK ভার্সন এবং ম্যানিফেস্ট ফ্ল্যাগ ভ্যালু নির্বিশেষে, স্কোপড স্টোরেজ সহ আপনার অ্যাপ পরীক্ষা করতে পারবেন।

Android 11-এ স্কোপড স্টোরেজে হওয়া পরিবর্তন সম্পর্কে আরও জানতে, Android 11-এ Android স্টোরেজে হওয়া পরিবর্তন সম্পর্কে পৃষ্ঠায় স্কোপড স্টোরেজ বিভাগটি দেখুন।

GET_DATA_CONNECTION_STATE_R_VERSION

পরিবর্তন আইডি: 148535736

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

PreciseDataConnectionState#getDataConnectionState-এর জন্য SDK ভার্সন চেক করতে।

GET_DATA_STATE_R_VERSION

পরিবর্তন আইডি: 148534348

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

getDataState()-এর জন্য SDK ভার্সন চেক করতে।

GET_PROVIDER_SECURITY_EXCEPTIONS

পরিবর্তন আইডি: 150935354

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11 (API লেভেল ৩০) বা তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, getProvider(String) নিরাপত্তা সংক্রান্ত কোনও ব্যতিক্রম আর দেখায় না।

GET_TARGET_SDK_VERSION_CODE_CHANGE

পরিবর্তন আইডি: 145147528

ডিফল্ট স্ট্যাটাস: Android 10 (API লেভেল ২৯) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

SmsManager.sendResolverResult() পদ্ধতির জন্য SDK ভার্সন চেক করতে।

GWP_ASAN

পরিবর্তন আইডি: 135634846

ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য বন্ধ করা আছে।

অ্যাপে স্যাম্পেল করা নেটিভ মেমরি বাগ শনাক্তকরণ চালু করে।

এই পরিবর্তন সম্পর্কে আরও জানতে, GWP-ASan গাইড দেখুন।

HIDE_MAXTARGETSDK_P_HIDDEN_APIS

পরিবর্তন আইডি: 149997251

ডিফল্ট স্ট্যাটাস: Android 10 (API লেভেল ২৯) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 10 (API লেভেল ২৯) বা তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপের ক্ষেত্রে, Android 10 (API লেভেল ২৯)-এর জন্য max-target-p (greylist-max-p) তালিকার অংশ হিসেবে থাকা সব নন-SDK ইন্টারফেসের অ্যাক্সেস সরিয়ে দেয়।

HIDE_MAXTARGETSDK_Q_HIDDEN_APIS

পরিবর্তন আইডি: 149994052

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11 (API লেভেল ৩০) বা তার পরবর্তী ভার্সন টার্গেট করা অ্যাপের ক্ষেত্রে, Android 11 (API লেভেল ৩০)-এর জন্য max-target-q (greylist-max-q) তালিকার অংশ হিসেবে থাকা সব নন-SDK ইন্টারফেসের অ্যাক্সেস সরিয়ে দেয়।

এই পরিবর্তন সম্পর্কে আরও জানতে, Android 11-এ এখন ব্লক করা নন-SDK ইন্টারফেস দেখুন।

LISTEN_CODE_CHANGE

পরিবর্তন আইডি: 147600208

ডিফল্ট স্ট্যাটাস: Android 10 (API লেভেল ২৯) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

TelephonyManager.listen(PhoneStateListener, int)-এর জন্য SDK ভার্সন চেক করতে।

MISSING_APP_TAG

পরিবর্তন আইডি: 150776642

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১১-কে টার্গেট করা অ্যাপের ক্ষেত্রে, অ্যাপের ম্যানিফেস্ট ফাইলে application বা instrumentation ট্যাগ না থাকলে এখন একটি সমস্যা দেখানো হয়।

NATIVE_HEAP_POINTER_TAGGING

পরিবর্তন আইডি: 135754954

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11 টার্গেট করা অ্যাপের জন্য, নেটিভ হিপ অ্যালোকেশনে এখন সবচেয়ে গুরুত্বপূর্ণ বাইটে নন-জিরো ট্যাগ থাকে।

আরও জানতে, হিপ পয়েন্টার ট্যাগিং দেখুন।

PHONE_STATE_LISTENER_LIMIT_CHANGE_ID

পরিবর্তন আইডি: 150880553

ডিফল্ট স্ট্যাটাস: সব অ্যাপের জন্য চালু করা আছে।

Android 11-কে টার্গেট করা অ্যাপের ক্ষেত্রে, TelephonyManager.listen(PhoneStateListener, int)-এর মাধ্যমে যেকোনও প্রসেস রেজিস্টার করতে পারে এমন PhoneStateListener অবজেক্টের সংখ্যার উপর এখন একটি সীমা আছে। ডিফল্ট সীমা হল ৫০, যা রিমোট ডিভাইস কনফিগারেশন আপডেটের মাধ্যমে পরিবর্তন করা হতে পারে। এই সীমা TelephonyManager.listen(PhoneStateListener, int)-এর মাধ্যমে IllegalStateException ব্যবহার করে প্রয়োগ করা হয়, যখন অপরাধমূলক প্রসেস অনেক বেশি শ্রোতা রেজিস্টার করার চেষ্টা করে।

PREVENT_META_REFLECTION_BLACKLIST_ACCESS

পরিবর্তন আইডি: 142365358

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11 টার্গেট করা অ্যাপগুলি আর নন-SDK ইন্টারফেস অ্যাক্সেস করতে রিফ্লেকশনের অতিরিক্ত লেয়ার ব্যবহার করতে পারবে না।

PROCESS_CAPABILITY_CHANGE_ID

পরিবর্তন আইডি: 136274596

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11 টার্গেট করা অ্যাপের জন্য, Context.BIND_INCLUDE_CAPABILITIES ফ্ল্যাগটি এখন ক্লায়েন্ট প্রসেস থেকে বাউন্ড সার্ভিসে 'ব্যবহার করার সময়' সংক্রান্ত ক্ষমতা পাস করতে ব্যবহার করা যেতে পারে।

REMOVE_ANDROID_TEST_BASE

পরিবর্তন আইডি: 133396946

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১১-কে টার্গেট করা অ্যাপের ক্ষেত্রে, অ্যাপটি android.test.runner-এর উপর নির্ভর না করলে, android.test.base লাইব্রেরি সরিয়ে দেওয়া হয়েছে (কারণ এটি android.test.base লাইব্রেরির ক্লাসের উপর নির্ভর করে)।

REQUEST_ACCESSIBILITY_BUTTON_CHANGE

পরিবর্তন আইডি: 136293963

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11-কে টার্গেট করা অ্যাক্সেসিবিলিটি পরিষেবার জন্য, FLAG_REQUEST_ACCESSIBILITY_BUTTON ফ্ল্যাগটি এখন অ্যাক্সেসিবিলিটি পরিষেবার মেটাডেটা ফাইলে উল্লেখ করতে হবে। অন্যথায়, ফ্ল্যাগটি উপেক্ষা করা হয়।

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

RESOURCES_ARSC_COMPRESSED

পরিবর্তন আইডি: 132742131

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android ১১ (API লেভেল ৩০) টার্গেট করা অ্যাপে কমপ্রেস করা resources.arsc ফাইল থাকলে বা এই ফাইল ৪-বাইট বাউন্ডারিতে অ্যালাইন করা না থাকলে, সেগুলি ইনস্টল করা যাবে না।

এই পরিবর্তন সম্পর্কে আরও জানতে, কমপ্রেস করা রিসোর্স ফাইল দেখুন।

RESTRICT_STORAGE_ACCESS_FRAMEWORK

পরিবর্তন আইডি: 141600225

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

আপনার অ্যাপ Android ১১ ভার্সনকে টার্গেট করলে এবং Storage Access Framework (SAF) ব্যবহার করলে, আপনি আর ACTION_OPEN_DOCUMENT এবং ACTION_OPEN_DOCUMENT_TREE ইনটেন্ট অ্যাকশন ব্যবহার করে নির্দিষ্ট ডিরেক্টরি অ্যাক্সেস করতে পারবেন না। এইসব পরিবর্তন সম্পর্কে আরও জানতে, Android 11-এ স্টোরেজ সম্পর্কিত গোপনীয়তা আপডেট নিয়ে আলোচনা করা পৃষ্ঠায় ডকুমেন্ট অ্যাক্সেস সংক্রান্ত বিধিনিষেধ বিভাগ দেখুন।

SELINUX_LATEST_CHANGES

পরিবর্তন আইডি: 143539591

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার পরবর্তী ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

এই পরিবর্তন untrusted_app_R-targetSDk SELinux ডোমেনে অ্যাপ অ্যাক্সেস গেট করে। এটি কম্প্যাটিবিলিটি ফ্রেমওয়ার্কের অন্যতম মৌলিক পরিবর্তন যা অ্যাপকে targetSdkVersion-এর মাধ্যমে গেট করা অন্যান্য পরিবর্তন টগল করার অনুমতি দেয়, অ্যাপের targetSDKVersion পরিবর্তন না করেই। এই কারণে, Android 11-কে টার্গেট করে এমন অ্যাপের জন্য এই পরিবর্তন বন্ধ করবেন না, করলে অ্যাপটি কাজ করবে না।

শেয়ার করা ইউজার আইডি ব্যবহার করে এমন অ্যাপের ক্ষেত্রে এই পরিবর্তনের কোনও প্রভাব পড়বে না।

THROW_SECURITY_EXCEPTIONS

পরিবর্তন আইডি: 147340954

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11-এর আগে, setEnabled API-এর মাধ্যমে অনুমতির সমস্যার জন্য শুধুমাত্র SecurityException থ্রো করা হত। Android 11-এ এটি আর প্রযোজ্য নয় এবং যেকোনও কারণে SecurityException থ্রো করা হতে পারে, যার কোনওটিই কলারের কাছে প্রকাশ করা হয় না।

বর্তমান API-এর আচরণ বজায় রাখতে, Android 11-কে টার্গেট করে না এমন কোনও অ্যাপের ক্ষেত্রে যদি লিগ্যাসি অনুমতি সংক্রান্ত ব্যর্থতা বা অ্যাক্টর এনফোর্সমেন্ট সংক্রান্ত ব্যর্থতা ঘটে, তাহলে ব্যতিক্রমটি IllegalStateException-এ জোরপূর্বক পরিবর্তন করা হয় যা Android 11-এর আগে সোর্সে ছিল।

USE_SET_LOCATION_ENABLED

পরিবর্তন আইডি: 117835097

ডিফল্ট স্ট্যাটাস: Android 11 (API লেভেল ৩০) বা তার থেকে উন্নত ভার্সনকে টার্গেট করে এমন অ্যাপের জন্য চালু করা হয়েছে।

Android 11 টার্গেট করা অ্যাডমিন অ্যাপ আর DevicePolicyManager.setSecureSetting(ComponentName, String, String) ব্যবহার করে বন্ধ হয়ে যাওয়া Settings.Secure.LOCATION_MODE সেটিং পরিবর্তন করতে পারবে না। পরিবর্তে তাদের DevicePolicyManager.setLocationEnabled(ComponentName, boolean) ব্যবহার করা উচিত।