Android 16 প্ল্যাটফর্মে আচরণগত পরিবর্তন অন্তর্ভুক্ত রয়েছে যা আপনার অ্যাপকে প্রভাবিত করতে পারে।
নিম্নলিখিত আচরণগত পরিবর্তনগুলি সব অ্যাপের ক্ষেত্রে প্রযোজ্য যখন সেগুলি Android 16-এ চলে,
targetSdkVersion নির্বিশেষে। আপনার অ্যাপ পরীক্ষা করে দেখা উচিত এবং তারপরে যেখানে প্রযোজ্য সেখানে এইসব পরিবর্তনকে সাপোর্ট করার জন্য প্রয়োজন অনুযায়ী
এটি পরিবর্তন করা উচিত।
এছাড়াও, Android 16-কে টার্গেট করা অ্যাপকে প্রভাবিত করে এমন আচরণগত পরিবর্তনের তালিকা পর্যালোচনা করতে ভুলবেন না।
মূল কার্যকারিতা
Android 16 (API লেভেল 36)-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা Android সিস্টেমের বিভিন্ন মূল ক্ষমতাকে পরিবর্তন বা প্রসারিত করে।
JobScheduler কোটা অপ্টিমাইজেশন
অ্যান্ড্রয়েড 16 থেকে শুরু করে, আমরা নিম্নলিখিত বিষয়গুলির উপর ভিত্তি করে নিয়মিত এবং দ্রুত কাজ সম্পাদনের রানটাইম কোটা সামঞ্জস্য করছি:
- অ্যাপ্লিকেশানটি কোন অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে : Android 16-এ, সক্রিয় স্ট্যান্ডবাই বাকেটগুলি উদার রানটাইম কোটা দ্বারা প্রয়োগ করা শুরু হবে৷
- অ্যাপটি শীর্ষ অবস্থায় থাকাকালীন চাকরিটি কার্যকর করা শুরু করলে : Android 16-এ, অ্যাপটি ব্যবহারকারীর কাছে দৃশ্যমান থাকাকালীন চাকরি শুরু হয় এবং অ্যাপটি অদৃশ্য হয়ে যাওয়ার পরেও চলতে থাকে, চাকরির রানটাইম কোটা মেনে চলবে।
- যদি একটি ফোরগ্রাউন্ড পরিষেবা চালানোর সময় কাজটি কার্যকর করা হয় : Android 16-এ, যে কাজগুলি একটি ফোরগ্রাউন্ড পরিষেবার সাথে একযোগে কাজ করছে সেগুলি চাকরির রানটাইম কোটা মেনে চলবে। আপনি যদি ব্যবহারকারীর সূচনাকৃত ডেটা স্থানান্তরের জন্য কাজের সুবিধা নিয়ে থাকেন, তবে পরিবর্তে ব্যবহারকারীর সূচিত ডেটা স্থানান্তর কাজগুলি ব্যবহার করার কথা বিবেচনা করুন।
এই পরিবর্তনটি WorkManager, JobScheduler, এবং DownloadManager ব্যবহার করে নির্ধারিত কাজগুলিকে প্রভাবিত করে৷ কেন একটি কাজ বন্ধ করা হয়েছিল তা ডিবাগ করার জন্য, আমরা WorkInfo.getStopReason() (JobScheduler কাজের জন্য, JobParameters.getStopReason() ) কল করে কল করে কেন আপনার কাজ বন্ধ করা হয়েছিল তা লগ করার পরামর্শ দিই।
আপনার অ্যাপের অবস্থা কীভাবে এটি ব্যবহার করতে পারে এমন সংস্থানগুলিকে প্রভাবিত করে সে সম্পর্কে তথ্যের জন্য, পাওয়ার ম্যানেজমেন্ট রিসোর্স সীমা দেখুন৷ ব্যাটারি-অনুকূল সর্বোত্তম অনুশীলন সম্পর্কে আরও তথ্যের জন্য, টাস্ক শিডিউলিং API-এর জন্য ব্যাটারি ব্যবহার অপ্টিমাইজ করার নির্দেশিকা পড়ুন।
আমরা Android 16-এ প্রবর্তিত নতুন JobScheduler#getPendingJobReasonsHistory API ব্যবহার করার পরামর্শ দিচ্ছি কেন একটি চাকরি কার্যকর করা হয়নি তা বোঝার জন্য।
টেস্টিং
আপনার অ্যাপের আচরণ পরীক্ষা করার জন্য, আপনি নির্দিষ্ট চাকরির কোটা অপ্টিমাইজেশনের ওভাররাইড সক্ষম করতে পারেন যতক্ষণ না অ্যাপটি একটি Android 16 ডিভাইসে চলছে।
"শীর্ষ রাষ্ট্র চাকরীর রানটাইম কোটা মেনে চলবে" এর প্রয়োগ অক্ষম করতে, নিম্নলিখিত adb কমান্ডটি চালান:
adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_TOP_STARTED_JOBS APP_PACKAGE_NAME
"যে কাজগুলি একযোগে একটি ফোরগ্রাউন্ড পরিষেবার সাথে কাজ চালানোর সময় কাজ রানটাইম কোটা মেনে চলবে" এর প্রয়োগকে নিষ্ক্রিয় করতে, নিম্নলিখিত adb কমান্ডটি চালান:
adb shell am compat enable OVERRIDE_QUOTA_ENFORCEMENT_TO_FGS_JOBS APP_PACKAGE_NAME
নির্দিষ্ট অ্যাপ স্ট্যান্ডবাই বালতি আচরণ পরীক্ষা করতে, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট সেট করতে পারেন:
adb shell am set-standby-bucket APP_PACKAGE_NAME active|working_set|frequent|rare|restricted
আপনার অ্যাপটি যে অ্যাপ স্ট্যান্ডবাই বালতিতে রয়েছে তা বোঝার জন্য, আপনি নিম্নলিখিত adb কমান্ড ব্যবহার করে আপনার অ্যাপের অ্যাপ স্ট্যান্ডবাই বাকেট পেতে পারেন:
adb shell am get-standby-bucket APP_PACKAGE_NAME
পরিত্যক্ত খালি জব বন্ধ করার কারণ
An abandoned job occurs when the JobParameters object associated with the job
has been garbage collected, but JobService#jobFinished(JobParameters,
boolean) has not been called to signal job completion. This indicates that
the job may be running and being rescheduled without the app's awareness.
Apps that rely on JobScheduler, don't maintain a strong reference to the
JobParameters object, and timeout will now be granted the new job stop reason
STOP_REASON_TIMEOUT_ABANDONED, instead of STOP_REASON_TIMEOUT.
If there are frequent occurrences of the new abandoned stop reason, the system will take mitigation steps to reduce job frequency.
Apps should use the new stop reason to detect and reduce abandoned jobs.
If you're using WorkManager, AsyncTask, or DownloadManager, you aren't impacted because these APIs manage the job lifecycle on your app's behalf.
JobInfo#setImportantWhileForeground সম্পূর্ণভাবে বন্ধ করা হচ্ছে
The JobInfo.Builder#setImportantWhileForeground(boolean)
method indicates the importance of a job while the scheduling app is in the
foreground or when temporarily exempted from background restrictions.
This method has been deprecated since Android 12 (API level 31). Starting in Android 16, it no longer functions effectively and calling this method will be ignored.
This removal of functionality also applies to
JobInfo#isImportantWhileForeground(). Starting in Android
16, if the method is called, the method returns false.
অর্ডার করা ব্রডকাস্ট প্রায়রিটি স্কোপ আর গ্লোবাল নেই
অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলিকে ব্রডকাস্ট রিসিভারগুলিতে অগ্রাধিকার নির্ধারণ করার অনুমতি দেওয়া হয় যাতে রিসিভারগুলি সম্প্রচারটি গ্রহণ করে এবং প্রক্রিয়া করে তা নিয়ন্ত্রণ করতে। ম্যানিফেস্ট-ঘোষিত রিসিভারগুলির জন্য, অ্যাপগুলি অগ্রাধিকার নির্ধারণ করতে android:priority বৈশিষ্ট্য ব্যবহার করতে পারে এবং প্রসঙ্গ-নিবন্ধিত রিসিভারগুলির জন্য, অ্যাপগুলি অগ্রাধিকার নির্ধারণ করতে IntentFilter#setPriority() API ব্যবহার করতে পারে৷ যখন একটি সম্প্রচার পাঠানো হয়, সিস্টেমটি সর্বোচ্চ থেকে সর্বনিম্ন পর্যন্ত তাদের অগ্রাধিকারের ক্রমানুসারে রিসিভারদের কাছে পৌঁছে দেয়।
Android 16-এ, বিভিন্ন প্রক্রিয়া জুড়ে android:priority অ্যাট্রিবিউট বা IntentFilter#setPriority() ব্যবহার করে ব্রডকাস্ট ডেলিভারি অর্ডার নিশ্চিত করা হবে না। সম্প্রচার অগ্রাধিকার শুধুমাত্র সমস্ত প্রক্রিয়ার পরিবর্তে একই আবেদন প্রক্রিয়ার মধ্যে সম্মান করা হবে।
এছাড়াও, সম্প্রচারের অগ্রাধিকারগুলি স্বয়ংক্রিয়ভাবে পরিসরে সীমাবদ্ধ থাকবে ( SYSTEM_LOW_PRIORITY + 1, SYSTEM_HIGH_PRIORITY - 1)৷ শুধুমাত্র সিস্টেমের উপাদানগুলিকে SYSTEM_LOW_PRIORITY , SYSTEM_HIGH_PRIORITY সম্প্রচার অগ্রাধিকার হিসাবে সেট করার অনুমতি দেওয়া হবে৷
আপনার অ্যাপটি নিম্নোক্ত যেকোনো একটি করলে প্রভাবিত হতে পারে:
- আপনার আবেদন একই সম্প্রচার অভিপ্রায় সহ একাধিক প্রক্রিয়া ঘোষণা করেছে এবং অগ্রাধিকারের উপর ভিত্তি করে একটি নির্দিষ্ট ক্রমে সেই অভিপ্রায়গুলি পাওয়ার আশেপাশে প্রত্যাশা রয়েছে৷
- আপনার আবেদন প্রক্রিয়া অন্যান্য প্রক্রিয়ার সাথে ইন্টারঅ্যাক্ট করে এবং একটি নির্দিষ্ট ক্রমে একটি সম্প্রচারের অভিপ্রায় প্রাপ্তির আশা রাখে।
যদি প্রক্রিয়াগুলি একে অপরের সাথে সমন্বয় করতে হয়, তবে তাদের অন্যান্য সমন্বয় চ্যানেল ব্যবহার করে যোগাযোগ করা উচিত।
ART ইন্টার্নাল পরিবর্তন
Android 16 includes the latest updates to the Android Runtime (ART) that improve the Android Runtime's (ART's) performance and provide support for additional Java features. Through Google Play System updates, these improvements are also available to over a billion devices running Android 12 (API level 31) and higher.
As these changes are released, libraries and app code that rely on internal structures of ART might not work correctly on devices running Android 16, along with earlier Android versions that update the ART module through Google Play system updates.
Relying on internal structures (such as non-SDK interfaces) can always lead to compatibility problems, but it's particularly important to avoid relying on code (or libraries containing code) that leverages internal ART structures, since ART changes aren't tied to the platform version the device is running on and they go out to over a billion devices through Google Play system updates.
All developers should check whether their app is impacted by testing their apps thoroughly on Android 16. In addition, check the known issues to see if your app depends on any libraries that we've identified that rely on internal ART structures. If you do have app code or library dependencies that are affected, seek public API alternatives whenever possible and request public APIs for new use cases by creating a feature request in our issue tracker.
১৬ কেবি পেজ সাইজ কম্প্যাটিবিলিটি মোড
প্ল্যাটফর্মের কর্মক্ষমতা অপ্টিমাইজ করতে Android 15 16 KB মেমরি পৃষ্ঠাগুলির জন্য সমর্থন চালু করেছে। Android 16 একটি সামঞ্জস্যপূর্ণ মোড যোগ করে, যা 4 KB মেমরি পৃষ্ঠাগুলির জন্য নির্মিত কিছু অ্যাপকে 16 KB মেমরি পৃষ্ঠাগুলির জন্য কনফিগার করা ডিভাইসে চালানোর অনুমতি দেয়।
যখন আপনার অ্যাপ Android 16 বা তার উচ্চতর সংস্করণের কোনো ডিভাইসে চলছে, যদি Android শনাক্ত করে যে আপনার অ্যাপে 4 KB সারিবদ্ধ মেমরি পৃষ্ঠা রয়েছে, তাহলে এটি স্বয়ংক্রিয়ভাবে সামঞ্জস্যপূর্ণ মোড ব্যবহার করে এবং ব্যবহারকারীর কাছে একটি বিজ্ঞপ্তি ডায়ালগ প্রদর্শন করে। পিছনের দিকের সামঞ্জস্য মোড সক্ষম করতে AndroidManifest.xml এ android:pageSizeCompat বৈশিষ্ট্য সেট করা আপনার অ্যাপ চালু হওয়ার সময় ডায়ালগ প্রদর্শনকে বাধা দেবে৷ android:pageSizeCompat প্রপার্টি ব্যবহার করতে, Android 16 SDK ব্যবহার করে আপনার অ্যাপ কম্পাইল করুন।
সর্বোত্তম কর্মক্ষমতা, নির্ভরযোগ্যতা এবং স্থিতিশীলতার জন্য, আপনার অ্যাপটি এখনও 16 KB সারিবদ্ধ হওয়া উচিত। আরও বিশদ বিবরণের জন্য 16 KB মেমরি পৃষ্ঠাগুলিকে সমর্থন করার জন্য আপনার অ্যাপগুলি আপডেট করার বিষয়ে আমাদের সাম্প্রতিক ব্লগ পোস্টটি দেখুন৷

ব্যবহারকারীর অভিজ্ঞতা ও সিস্টেম UI
Android 16 (API লেভেল 36)-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করা হয়েছে, যেগুলি আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার জন্য উদ্দিষ্ট।
বিঘ্ন ঘটায় এমন অ্যাক্সেসিবিলিটি সংক্রান্ত ঘোষণা বন্ধ করা হচ্ছে
Android 16 অ্যাকসেসিবিলিটি ঘোষণাগুলিকে বাতিল করে, যা announceForAccessibility ব্যবহার বা TYPE_ANNOUNCEMENT অ্যাক্সেসিবিলিটি ইভেন্টগুলির প্রেরণের দ্বারা চিহ্নিত৷ এগুলি টকব্যাক এবং অ্যান্ড্রয়েডের স্ক্রিন রিডার ব্যবহারকারীদের জন্য অসামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে পারে এবং বিকল্পগুলি Android এর বিভিন্ন সহায়ক প্রযুক্তি জুড়ে ব্যবহারকারীর চাহিদার বিস্তৃত পরিসরকে আরও ভালভাবে পরিবেশন করে৷
বিকল্পের উদাহরণ:
- উইন্ডো পরিবর্তনের মতো উল্লেখযোগ্য UI পরিবর্তনের জন্য
Activity.setTitle(CharSequence)এবংsetAccessibilityPaneTitle(java.lang.CharSequence)ব্যবহার করুন। রচনায়,Modifier.semantics { paneTitle = "paneTitle" } - ব্যবহারকারীকে গুরুত্বপূর্ণ UI-তে পরিবর্তন সম্পর্কে অবহিত করতে,
setAccessibilityLiveRegion(int)ব্যবহার করুন। রচনায়,Modifier.semantics { liveRegion = LiveRegionMode.[Polite|Assertive]}। এগুলি অল্প ব্যবহার করা উচিত কারণ প্রতিবার ভিউ আপডেট করার সময় এগুলি ঘোষণা তৈরি করতে পারে৷ - ব্যবহারকারীদের ত্রুটি সম্পর্কে অবহিত করতে,
AccessibilityEvent#CONTENT_CHANGE_TYPE_ERRORধরনের একটিAccessibilityEventপাঠান এবংAccessibilityNodeInfo#setError(CharSequence)সেট করুন, অথবাTextView#setError(CharSequence)ব্যবহার করুন।
অপ্রচলিত announceForAccessibility API-এর রেফারেন্স ডকুমেন্টেশনে প্রস্তাবিত বিকল্পগুলি সম্পর্কে আরও বিশদ অন্তর্ভুক্ত রয়েছে৷
৩টি-বোতাম দিয়ে করা নেভিগেশনের জন্য সহায়তা
Android 16 সঠিকভাবে ভবিষ্যদ্বাণীমূলক ব্যাক-এ স্থানান্তরিত অ্যাপগুলির জন্য 3-বোতাম নেভিগেশনে ভবিষ্যদ্বাণীমূলক ব্যাক সমর্থন নিয়ে আসে। পিছনের বোতামটি দীর্ঘক্ষণ চাপলে একটি ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন শুরু হয়, যা আপনাকে পিছনের সোয়াইপ আপনাকে কোথায় নিয়ে যায় তার একটি পূর্বরূপ দেয়।
এই আচরণটি সিস্টেমের সমস্ত ক্ষেত্র জুড়ে প্রযোজ্য যা ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশনগুলিকে সমর্থন করে, যার মধ্যে সিস্টেম অ্যানিমেশনগুলি (ব্যাক-টু-হোম, ক্রস-টাস্ক, এবং ক্রস-অ্যাক্টিভিটি) সহ।
অটোমেটিক থিমযুক্ত অ্যাপ আইকন
Beginning with Android 16 QPR 2, Android automatically applies themes to app icons to create a cohesive home screen experience. This occurs if an app does not provide its own themed app icon. Apps can control the design of their themed app icon by including a monochrome layer within their adaptive icon and previewing what their app icon will look like in Android Studio.
ডিভাইস ফর্ম ফ্যাক্টর
ভার্চুয়াল ডিভাইসের মালিক ডিসপ্লেতে প্রোজেক্ট করলে, Android 16 (API লেভেল 36) অ্যাপের জন্য নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করে।
ভার্চুয়াল ডিভাইসের মালিক ওভাররাইড করে
ভার্চুয়াল ডিভাইসের মালিক হল একটি বিশ্বস্ত বা বিশেষ সুবিধা প্রাপ্ত অ্যাপ যা ভার্চুয়াল ডিভাইস তৈরি ও ম্যানেজ করে। ভার্চুয়াল ডিভাইসের মালিকরা ভার্চুয়াল ডিভাইসে অ্যাপ চালান এবং তারপর অ্যাপটি কোনও রিমোট ডিভাইসের ডিসপ্লেতে প্রোজেক্ট করেন, যেমন ব্যক্তিগত কম্পিউটার, ভার্চুয়াল রিয়েলিটি ডিভাইস বা গাড়ির ইনফোটেনমেন্ট সিস্টেম। ভার্চুয়াল ডিভাইসের মালিক কোনও লোকাল ডিভাইসে আছেন, যেমন মোবাইল ফোন।
প্রতিটি অ্যাপের জন্য ওভাররাইড
Android 16 (API লেভেল 36) অপারেটিং সিস্টেম চলছে এমন ডিভাইসে, ভার্চুয়াল ডিভাইসের মালিকরা ভার্চুয়াল ডিভাইসের মালিকদের দ্বারা ম্যানেজ করা বেছে নেওয়া ভার্চুয়াল ডিভাইসে অ্যাপ সেটিংস ওভাররাইড করতে পারবেন। যেমন, অ্যাপ লেআউট উন্নত করতে, ভার্চুয়াল ডিভাইসের মালিক এক্সটার্নাল ডিসপ্লেতে অ্যাপ প্রজেক্ট করার সময় ওরিয়েন্টেশন, অ্যাস্পেক্ট রেশিও এবং রিসাইজ করার বিধিনিষেধ উপেক্ষা করতে পারেন।
সাধারণ ব্রেকিং পরিবর্তন
Android 16-এর আচরণ আপনার অ্যাপের UI-কে বড় স্ক্রিন ফর্ম ফ্যাক্টরে প্রভাবিত করতে পারে, যেমন গাড়ির ডিসপ্লে বা Chromebook, বিশেষ করে এমন লেআউট যা পোর্ট্রেট ওরিয়েন্টেশনে ছোট ডিসপ্লের জন্য ডিজাইন করা হয়েছে। সব ডিভাইস ফর্ম ফ্যাক্টরের জন্য আপনার অ্যাপ কীভাবে অ্যাডাপ্টিভ করবেন তা জানতে, অ্যাডাপ্টিভ লেআউট সম্পর্কে দেখুন।
রেফারেন্স
নিরাপত্তা
Android 16 (API লেভেল 36)-এ এমন পরিবর্তন অন্তর্ভুক্ত আছে যা সিস্টেমের নিরাপত্তা উন্নত করে ক্ষতিকর অ্যাপ থেকে অ্যাপ ও ব্যবহারকারীদের সুরক্ষিত রাখতে সাহায্য করে।
ইনটেন্ট রিডাইরেকশন অ্যাটাকের বিরুদ্ধে উন্নত নিরাপত্তা
Android 16 সাধারণ Intent রিডাইরেকশন অ্যাটাকের বিরুদ্ধে ডিফল্ট নিরাপত্তা প্রদান করে, যার জন্য ন্যূনতম সামঞ্জস্যতা এবং ডেভেলপার পরিবর্তন প্রয়োজন।
আমরা Intent-এ রিডাইরেকশন এক্সপ্লয়েটের জন্য
ডিফল্ট হিসেবে নিরাপত্তা আরও জোরদার করার সমাধান নিয়ে আসছি। বেশিরভাগ ক্ষেত্রে, ইনটেন্ট ব্যবহার করে এমন অ্যাপে সাধারণত কোনও কম্প্যাটিবিলিটি সংক্রান্ত সমস্যা হয় না; কোন অ্যাপে সমস্যা হতে পারে তা মনিটর করার জন্য আমরা ডেভেলপমেন্ট প্রসেস জুড়ে মেট্রিক সংগ্রহ করেছি।
Android-এ ইনটেন্ট রিডাইরেকশন তখনই হয় যখন কোনও আক্রমণকারী, দুর্বল অ্যাপের প্রসঙ্গে নতুন কম্পোনেন্ট লঞ্চ করার জন্য ব্যবহৃত ইনটেন্টের কন্টেন্ট আংশিক বা সম্পূর্ণভাবে নিয়ন্ত্রণ করতে পারে, যেখানে ভিক্টিম অ্যাপ, ("টপ-লেভেল") ইনটেন্টের অতিরিক্ত ফিল্ডে একটি অবিশ্বাসযোগ্য সাব-লেভেল ইনটেন্ট লঞ্চ করে। এর ফলে আক্রমণকারী অ্যাপ, ক্ষতিগ্রস্ত অ্যাপের প্রসঙ্গে ব্যক্তিগত কম্পোনেন্ট লঞ্চ করতে পারে, প্রিভিলেজড অ্যাকশন ট্রিগার করতে পারে বা সংবেদনশীল ডেটাতে URI অ্যাক্সেস পেতে পারে, যার ফলে ডেটা চুরি এবং ইচ্ছামতো কোড এক্সিকিউট হওয়ার সম্ভাবনা থাকে।
ইনটেন্ট রিডাইরেকশন ম্যানেজমেন্ট থেকে অপ্ট-আউট করুন
Android 16-এ একটি নতুন API চালু করা হয়েছে যা অ্যাপকে লঞ্চ নিরাপত্তা সুরক্ষা থেকে অপ্ট-আউট করার অনুমতি দেয়। নির্দিষ্ট কিছু ক্ষেত্রে এটি প্রয়োজন হতে পারে যেখানে ডিফল্ট নিরাপত্তা আচরণ বৈধ অ্যাপ ব্যবহারের ক্ষেত্রে বাধা সৃষ্টি করে।
Android 16 (API লেভেল ৩৬) SDK বা তার পরবর্তী ভার্সনের সাথে কম্পাইল করা অ্যাপ্লিকেশনের জন্য
আপনি সরাসরি Intent অবজেক্টে removeLaunchSecurityProtection() পদ্ধতি ব্যবহার করতে পারেন।
val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent")
iSublevel?.removeLaunchSecurityProtection() // Opt out from hardening
iSublevel?.let { startActivity(it) }
Android 15 (API লেভেল 35) বা তার আগের ভার্সনের জন্য কম্পাইল করা অ্যাপ্লিকেশনের ক্ষেত্রে
সাজেস্ট করা না হলেও, আপনি removeLaunchSecurityProtection() পদ্ধতি অ্যাক্সেস করতে
রিফ্লেকশন ব্যবহার করতে পারেন।
val i = intent
val iSublevel: Intent? = i.getParcelableExtra("sub_intent", Intent::class.java)
try {
val removeLaunchSecurityProtection = Intent::class.java.getDeclaredMethod("removeLaunchSecurityProtection")
removeLaunchSecurityProtection.invoke(iSublevel)
} catch (e: Exception) {
// Handle the exception, e.g., log it
} // Opt-out from the security hardening using reflection
iSublevel?.let { startActivity(it) }
ডিসকভারি টাইমআউট সম্পর্কে কম্প্যানিয়ন অ্যাপকে আর বিজ্ঞপ্তি পাঠানো হয় না
অ্যান্ড্রয়েড 16 ব্যবহারকারীর লোকেশন গোপনীয়তাকে ক্ষতিকারক অ্যাপ থেকে রক্ষা করতে সঙ্গী ডিভাইস পেয়ারিং ফ্লো চলাকালীন একটি নতুন আচরণ প্রবর্তন করে। RESULT_DISCOVERY_TIMEOUT ব্যবহার করে অ্যান্ড্রয়েড 16-এ চলমান সমস্ত সঙ্গী অ্যাপগুলিকে আর আবিষ্কারের সময়সীমার বিষয়ে সরাসরি বিজ্ঞপ্তি দেওয়া হয় না। পরিবর্তে, ব্যবহারকারীকে একটি ভিজ্যুয়াল ডায়ালগের মাধ্যমে সময় শেষ হওয়ার ঘটনা সম্পর্কে অবহিত করা হয়। যখন ব্যবহারকারী ডায়ালগ খারিজ করে, অ্যাপটিকে RESULT_USER_REJECTED সাথে অ্যাসোসিয়েশন ব্যর্থতার বিষয়ে সতর্ক করা হয়।
অনুসন্ধানের সময়কালটি মূল 20 সেকেন্ড থেকেও বাড়ানো হয়েছে এবং অনুসন্ধানের সময় ব্যবহারকারী যে কোনও সময়ে ডিভাইস আবিষ্কার বন্ধ করতে পারে। যদি অনুসন্ধান শুরু করার প্রথম 20 সেকেন্ডের মধ্যে অন্তত একটি ডিভাইস আবিষ্কৃত হয়, CDM অতিরিক্ত ডিভাইসগুলির জন্য অনুসন্ধান বন্ধ করে দেয়।
কানেক্টিভিটি
Android 16 (API লেভেল 36)-এ ব্লুটুথ স্ট্যাকে নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করা হয়েছে যাতে পেরিফেরাল ডিভাইসের সাথে কানেক্টিভিটি উন্নত করা যায়।
বন্ড লস ম্যানেজ করার উন্নত সুবিধা
从 Android 16 开始,蓝牙堆栈已更新,以便在检测到远程配对丢失时提高安全性和用户体验。以前,系统会自动解除配对并启动新的配对流程,这可能会导致意外重新配对。在许多情况下,我们发现应用未以一致的方式处理债券损失事件。
为了统一体验,Android 16 改进了系统的绑定丢失处理。如果之前配对的蓝牙设备在重新连接时无法进行身份验证,系统会断开关联,保留本地配对信息,并显示系统对话框,告知用户配对已断开并指示他们重新配对。