בדף הזה מתואר כל שינוי שמשפיע על האפליקציה שנוסף למסגרת התאימות ב-Android 11 (רמת API 30). אתם יכולים להשתמש ברשימה הזו בשילוב עם אפשרויות הפיתוח ופקודות ה-ADB כדי לבדוק ולפתור באגים באפליקציה בזמן ההכנות לטירגוט ל-Android 11.
ADD_CONTENT_OBSERVER_FLAGS
מזהה השינוי: 150939131
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
באפליקציות שמטרגטות ל-Android 11, יש עומס יתר חדש ב-API הציבורי onChange(boolean, Uri, int)
שכולל את הארגומנט flags
מסוג מספר שלם.
השיטה החדשה הזו היא חלופה ציבורית ל-SDK לאפליקציות שמשתמשות בשיטה onChange()
עם עומס יתר שאינה SDK, שכוללת את הארגומנט userId
מסוג מספר שלם.
ADMIN_APP_password_COMPL ExitY
מזהה השינוי: 123562444
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
באפליקציות אדמין שמטרגטות את Android 11, צריך להציג שגיאה בכל פעם שאפליקציה מגדירה דרישת סיסמה שלא רלוונטית לאיכות הסיסמה שמוקצית כרגע. לדוגמה, כשאיכות הסיסמה מוגדרת לערך DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
, לאפליקציה לא תהיה אפשרות להגדיר אורך מינימלי לסיסמה. במקרה כזה, לפני שמנסים להגדיר את האורך המינימלי של הסיסמה, האפליקציה צריכה קודם להפעיל את השיטה setPasswordQuality()
ואז רק להפעיל את השיטה setPasswordMinimumLength()
.
בנוסף, כשאפליקציית אדמין שמטרגטת את Android 11 מורידה את איכות הסיסמה, כל דרישות הסיסמה הקיימות שכבר לא רלוונטיות מתאפסים לערכי ברירת המחדל שלהן.
APP_DATA_DIRECTORY_ISOLATION
מזהה השינוי: 143937733
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
לאפליקציות שמטרגטות את Android 11 אין יותר גישה לקבצים בספריות של נתונים פרטיים של כל אפליקציה, ללא קשר לגרסה של ה-SDK של האפליקציה האחרת.
מידע נוסף זמין במאמר גישה לספריות פרטיות.
APN_READING_רשות_שינוי_ID
מזהה שינוי: 124107808
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
באפליקציות שמטרגטות את Android 11, הגישה למסד הנתונים של APN מחייבת עכשיו את ההרשאה Manifest.permission.WRITE_APN_SETTINGS
.
מידע נוסף על השינוי הזה זמין במאמר גישת קריאה מוגבלת למסד הנתונים של APN.
BACKGROUND_RATIONALE_CHANGE_ID
מזהה השינוי: 147316723
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
מעכשיו צריך להציג באפליקציות נימוק תקין בכל פעם שהן מבקשות גישה למיקום של המכשיר ברקע.
מידע נוסף על השינוי הזה זמין במדריך בנושא גישה למיקום ברקע ב-Android 11, שבו מוסבר על השינויים בפרטיות שקשורים למיקום ב-Android 11.
CALLBACK_ON_CLEAR_CHANGE
מזהה שינוי: 119147584
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
בכל פעם שמפעילים את Editor.clear
, מתבצעת קריאה חוזרת (callback) ל-OnSharedPreferenceChangeListener.onSharedPreferenceChanged
עם מפתח null
.
מידע נוסף על השינוי הזה זמין במאמר שינויים בקריאות חזרה (callbacks) ל-OnSharedPreferenceChangeListener.
CALLBACK_ON_MORE_ERROR_CODE_CHANGE
מזהה השינוי: 130595455
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
קודי השגיאות מורחבים עכשיו עבור updateAvailableNetworks(List,
Executor,
Consumer)
ו-setPreferredOpportunisticDataSubscription(int, boolean, Executor,
Consumer)
.
CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE
מזהה שינוי: 148180766
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
זהו שינוי התנהגות עדין ב-startWatchingMode(String, String,
AppOpsManager.OnOpChangedListener)
.
לפני השינוי הזה, המערכת התקשרה חזרה כדי לבצע את הפעולה שהועברה. אחרי השינוי, המערכת תתקשר חזרה כדי לבצע את הפעולה שביקשת או את כל הפעולות שהועברו, אם לא תציינו פעולה.
CAMERA_MICROPHONE_CAPABILITY_CHANGE_ID
מזהה השינוי: 136219221
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
באפליקציות שמטרגטות ל-Android 11, שירותים שפועלים בחזית מקבלים את היכולות של המצלמה והמיקרופון בזמן השימוש רק כשהערך של R.attr.foregroundServiceType
מוגדר כ-ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA
וכ-ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE
, בהתאמה, בקובץ המניפסט. בגרסאות קודמות של Android, לשירותים בחזית היתה גישה אוטומטית למצלמה ולמיקרופון.
מידע נוסף על השינוי הזה זמין במאמר סוגי שירותים בחזית במכשירי Android 11.
CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK
מזהה שינוי: 128611929
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
אפליקציות לא יכולות יותר לפרסם הודעות טוסט בהתאמה אישית ברקע. עם זאת, אפליקציות עדיין יכולות לפרסם הודעות 'הודעה קצרה' באמצעות השיטה Toast.makeText(Context, CharSequence,
int)
והוריאציות שלה בזמן שהן פועלות ברקע.
למידע נוסף על השינוי הזה, ראו תצוגות של הודעות חסומות בהתאמה אישית חסומות.
CHANGE_Limit_SAW_INTENT
מזהה השינוי: 135920175
מצב ברירת המחדל: אי אפשר להחליף את השינוי הזה. הוא מתועד ביומן רק על ידי מסגרת התאימות.
כוונות (intents) שמשתמשות בפעולה android.settings.MANAGE_APP_OVERLAY_PERMISSION
ובסכימת ה-URI של הנתונים package
כבר לא מפנות את המשתמש למסך ספציפי לאפליקציה לניהול ההרשאה המשויכת. במקום זאת, המשתמש מועבר למסך שבו הוא יכול לנהל את כל האפליקציות שביקשו את ההרשאה.
CHANGE_TEXT_TOASTS_IN_THE_SYSTEM
מזהה השינוי: 147798919
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
הודעות טקסט מעובדות עכשיו על ידי SystemUI במקום בתוך האפליקציה. כך, אפליקציות לא יוכלו לעקוף הגבלות על פרסום הודעות שירות בהתאמה אישית ברקע.
DEFAULT_SCOPED_STORAGE
מזהה השינוי: 149924527
מצב ברירת המחדל: מופעל בכל האפליקציות.
כל האפליקציות שמטרגטות את Android 11 משתמשות עכשיו באחסון היקף כברירת מחדל, וכבר לא יכולות לבטל את ההסכמה לנפח אחסון היקף.
עם זאת, אפשר לבדוק את האפליקציה בלי אחסון מוגבל, ללא קשר לגרסה של ה-SDK היעד ולערכים של דגל המניפסט של האפליקציה, על ידי השבתת השינוי הזה.
למידע נוסף על השינויים בנפח האחסון ב-Android 11, תוכלו לקרוא את הקטע Scoped storage בדף בנושא השינויים בנפח האחסון של Android ב-Android 11.
EMPTY_INTENT_ACTION_CATEGORY
מזהה השינוי: 151163173
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
באפליקציות שמטרגטות ל-Android 11, המערכת תנפיק עכשיו הודעת שגיאה אם
המסנן action
או
category
הוא מחרוזת ריקה. באג בפלטפורמה לפני Android 11 איפשר לבעיה הזו לעבור בלי להציג שגיאה. שימו לב שהמאפיין לא כולל מקרים שבהם המאפיין הוא null או חסר, כי תמיד הייתה שגיאה.
FILTER_APPLICATION_QUERY
מזהה השינוי: 135549675
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
מעכשיו, אפליקציות צריכות להצהיר על החבילות והכוונות שבהן הן מתכוונות להשתמש כדי לקבל פרטים על אפליקציות אחרות במכשיר. יש להצהיר על כך באמצעות התג <queries>
במניפסט של האפליקציה.
מידע נוסף על שליחת שאילתות לאפליקציות מותקנות אחרות ועל אינטראקציה איתן ב-Android 11 זמין בדף הפרטיות חשיפה של חבילות.
FORCE_ENABLE_SCOPED_STORAGE
מזהה שינוי: ערך: 132649864
מצב ברירת המחדל: מושבת בכל האפליקציות.
כל האפליקציות שמטרגטות את Android מגרסה 11 ואילך משתמשות עכשיו באחסון מוגבל כברירת מחדל, ולא ניתן יותר לבטל את ההסכמה לאחסון מוגבל.
עם זאת, אם האפליקציה עדיין מטרגטת את Android 10 (רמת API 29) ומטה, אפשר להפעיל את השינוי הזה כדי לבדוק את האפליקציה באמצעות נפח אחסון בהיקף, בלי קשר לגרסת היעד של ה-SDK של האפליקציה ולערכי הסימון במניפסט.
למידע נוסף על השינויים באחסון המותאם לפרויקט ב-Android 11, אפשר לעיין בקטע אחסון מוגבל לפרויקט בדף בנושא השינויים באחסון ב-Android ב-Android 11.
GET_DATA_CONNECTION_STATE_R_VERSION
מזהה השינוי: 148535736
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
כדי לבדוק את גרסת ה-SDK של PreciseDataConnectionState#getDataConnectionState
.
GET_DATA_STATE_R_VERSION
מזהה השינוי: 148534348
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
כדי לבדוק את גרסת ה-SDK של getDataState()
.
GET_Provider_SECURITY_EXCEPTIONS
מזהה השינוי: 150935354
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ואילך,
ה-method getProvider(String)
לא יוצר יותר חריגות אבטחה.
GET_TARGET_SDK_VERSION_CODE_CHANGE
מזהה שינוי: 145147528
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 10 (רמת API 29) ואילך.
כדי לבדוק את גרסת ה-SDK של השיטה SmsManager.sendResolverResult()
.
GWP_ASAN
מזהה השינוי: 135634846
מצב ברירת מחדל: מושבת לכל האפליקציות.
הפעלת איתור באגים בזיכרון מקומי באפליקציות באמצעות דגימה.
מידע נוסף על השינוי הזה זמין במדריך GWP-ASan.
HIDE_MAXTARGETSDK_P_HIDDEN_APIS
מזהה שינוי: 149997251
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 10 (רמת API 29) ואילך.
באפליקציות שמטרגטות ל-Android 10 (רמת API 29) ואילך, הגישה לכל הממשקים שאינם SDK שכלולים ברשימה max-target-p
(greylist-max-p
) ל-Android 10 (רמת API 29).
HIDE_MAXTARGETSDK_Q_HIDDEN_APIS
מזהה השינוי: 149994052
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
באפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך, המערכת מסירה את הגישה לכל הממשקים שאינם SDK שנכללים ברשימת max-target-q
(greylist-max-q
) ל-Android 11 (רמת API 30).
מידע נוסף על השינוי הזה זמין במאמר ממשקים שאינם SDK שחסומים עכשיו ב-Android 11.
LISTEN_CODE_CHANGE
מזהה השינוי: 147600208
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 10 (רמת API 29) ואילך.
כדי לבדוק את גרסת ה-SDK של TelephonyManager.listen(PhoneStateListener,
int)
.
MISSING_APP_TAG
מזהה השינוי: 150776642
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
באפליקציות שמטרגטות את Android 11, עכשיו מתקבלת הודעת שגיאה כשקובץ המניפסט של האפליקציה חסר תג application
או תג instrumentation
.
NATIVE_HEAP_POINTER_TAGGING
מזהה השינוי: 135754954
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
באפליקציות שמטרגטות את Android 11, הקצאות זיכרון יערי מקומיות כוללות עכשיו תג שאינו אפס בבייט המשמעותי ביותר.
למידע נוסף, ראו תיוג של מצביע ערימה.
PHONE_STATE_LISTENER_LIMIT_CHANGE_ID
מזהה השינוי: 150880553
מצב ברירת המחדל: מופעל בכל האפליקציות.
באפליקציות שמטרגטות ל-Android 11, מעכשיו יש מגבלה על מספר האובייקטים PhoneStateListener
שכל תהליך יכול להירשם דרך TelephonyManager.listen(PhoneStateListener, int)
.
מגבלת ברירת המחדל היא 50. אפשר לשנות אותה באמצעות עדכוני הגדרות של המכשיר מרחוק.
המגבלה הזו נאכפת באמצעות IllegalStateException
שנזרק על ידי TelephonyManager.listen(PhoneStateListener, int)
כשהתהליך הפוגע מנסה לרשום מאזין אחד יותר מדי.
PREVENT_META_REFLECTION_BLACKLIST_ACCESS
מזהה השינוי: 142365358
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
אפליקציות שמטרגטות את Android 11 לא יכולות יותר להשתמש בשכבה נוספת של השתקפות כדי לגשת לממשקים מוגבלים שאינם ב-SDK.
PROCESS_CAPABILITY_CHANGE_ID
מזהה השינוי: 136274596
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
באפליקציות שמטרגטות ל-Android מגרסה 11 ואילך, אפשר להשתמש בדגל Context.BIND_INCLUDE_CAPABILITIES
כדי להעביר יכולות בזמן השימוש מתהליך הלקוח לשירות מקושר.
REMOVE_ANDROID_TEST_BASE
מזהה השינוי: 133396946
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
באפליקציות שמטרגטות את Android 11, הספרייה android.test.base
הוסר אם האפליקציה לא תלויה ב-android.test.runner
(כי היא תלויה בכיתות מהספרייה android.test.base
).
REQUEST_ACCESSIBILITY_BUTTON_CHANGE
מזהה השינוי: 136293963
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
בשירותי נגישות שמטרגטים ל-Android 11, מעכשיו צריך לציין את הדגל FLAG_REQUEST_ACCESSIBILITY_BUTTON
בקובץ המטא-נתונים של שירות הנגישות.
אחרת, המערכת תתעלם מהדגל.
מידע נוסף על השינוי זמין במאמר הצהרה על השימוש בלחצן הנגישות בקובץ המטא-נתונים.
RESOURCES_ARSC_COMPRESSED
מזהה שינוי: 132742131
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
לא ניתן להתקין אפליקציות שמטרגטות את Android 11 (רמת API 30) אם הן מכילות קובץ resources.arsc
דחוס או אם הקובץ לא נמצא בקו אחד עם גבולות של 4 בייטים.
מידע נוסף על השינוי הזה זמין במאמר קובצי משאבים דחוסים.
RESTRICT_STORAGE_ACCESS_FRAMEWORK
מזהה השינוי: 141600225
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
אם האפליקציה שלכם מטרגטת ל-Android 11 ומשתמשת ב-Storage Access Framework (SAF), לא תוכלו יותר לגשת לספריות מסוימות באמצעות פעולות הכוונה ACTION_OPEN_DOCUMENT
ו-ACTION_OPEN_DOCUMENT_TREE
. מידע נוסף על השינויים האלה זמין בקטע 'הגבלות גישה למסמכים' בדף שבו מוסבר על עדכוני הפרטיות שקשורים לאחסון ב-Android 11.
SELINUX_LATEST_CHANGES
מזהה השינוי: 143539591
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
השינוי הזה מגביל את הגישה של אפליקציות לדומיין untrusted_app_R-targetSDk ב-SELinux.
זהו אחד מהשינויים הבסיסיים במסגרת התאימות שמאפשרים לאפליקציות להפעיל או להשבית שינויים אחרים שמאובטחים על ידי targetSdkVersion
בלי לשנות את targetSDKVersion
של האפליקציה. לכן מומלץ לא להשבית את השינוי הזה באפליקציה שמטרגטת ל-Android 11, אחרת האפליקציה לא תפעל.
השינוי הזה לא משפיע על אפליקציות שמשתמשות במזהה משתמש משותף.
THROW_SECURITY_EXCEPTIONS
מזהה שינוי: 147340954
מצב ברירת המחדל: מופעל לאפליקציות שמטרגטות את Android 11 (רמת API 30) ואילך.
לפני Android 11, הודעת השגיאה SecurityException
הופיעה רק ב-API של setEnabled
בגלל שגיאה בהרשאה. ב-Android 11 המצב הזה כבר לא רלוונטי, ואפשר להפעיל SecurityException
מכמה סיבות, אף אחת מהן לא חשופה למבצע הקריאה.
כדי לשמור על ההתנהגות הקיימת של ה-API, אם מתרחשת כשל בהרשאה מדור קודם או כשל באכיפה של גורם באפליקציה שלא מטרגטת את Android 11, החריג מומר ל-IllegalStateException
שהיה קיים במקור לפני Android 11.
USE_SET_LOCATION_enabled
מזהה השינוי: 117835097
מצב ברירת המחדל: מופעל באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה.
אפליקציות אדמין שמטרגטות את Android מגרסה 11 לא יכולות יותר להשתמש ב-DevicePolicyManager.setSecureSetting(ComponentName, String, String)
כדי לשנות את ההגדרה הקודמת Settings.Secure.LOCATION_MODE
. במקום זאת, צריך להשתמש ב-DevicePolicyManager.setLocationEnabled(ComponentName, boolean)
.