עדכונים להגבלות על ממשקים שאינם SDK ב-Android 13

מערכת Android 13 כוללת רשימות מעודכנות של רכיבי SDK מוגבלים שאינם SDK שמבוססים על שיתוף פעולה עם מפתחי Android, בדיקה פנימית. כשהדבר אפשרי, אנחנו מוודאים שחלופות ציבוריות לפני שנגביל ממשקים שאינם SDK.

אם האפליקציה לא מטרגטת את Android 13, חלק מהשינויים האלה עשויה להשפיע עליך באופן מיידי. אבל למרות שכרגע אפשר להשתמש בחלק ממשקים שאינם SDK (בהתאם ל-API המטורגט של האפליקציה רמה), שימוש בכל שיטה או שדה שאינם SDK תמיד עלול לגרום לקריסה אפליקציה.

אם אתם לא בטוחים אם האפליקציה שלכם משתמשת בממשקים שאינם SDK, אפשר לבדוק את אפליקציה כדי לגלות את התשובה. אם האפליקציה שלך מסתמכת על ממשקים שאינם SDK, יש להתחיל לתכנן העברה לחלופות SDK. עם זאת, אנחנו מבינים שחלק מהאפליקציות תרחישים לדוגמה חוקיים לשימוש בממשקים שאינם SDK. אם לא מוצאים דרך חלופית לשימוש בממשק שאינו SDK עבור תכונה באפליקציה, צריך לבקש API ציבורי חדש.

רשימת השינויים ב-Android 13

רשימת השינויים ב-Android 13 שייכת לקטגוריה הבאה:

כדי לראות את הרשימה המלאה של כל הממשקים שאינם SDK ל-Android 13, צריך להוריד את קובץ הבא:

קובץ: hiddenapi-flags.csv

סיכום ביקורת (checksum) SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

ממשקים שאינם SDK שחסומים עכשיו ב-Android 13

תיבת הקוד הבאה מפרטת את כל הממשקים שאינם SDK שלא נתמכים ב-Android 12 (רמת API 31) שחסומות ב-Android 13 (רמת API 33). ש הממשקים האלה שייכים לרשימה של max-target-s, כך שהאפליקציה שלך יכולה להשתמש רק הממשקים האלה אם הוא מטורגט ל-Android 12 (רמת API 31) ומטה.

המטרה שלנו היא להבטיח שהחלופות הציבוריות יהיו זמינות לפני שאנחנו להגביל ממשקים שאינם SDK, ואנחנו מבינים שלאפליקציה שלך יש אפשרות תרחיש לדוגמה לשימוש בממשקים האלה. אם הממשק שבו האפליקציה משתמשת הגרסה הקודמת חסומה עכשיו ב-Android 13, צריך לבקש גישה ציבורית חדשה API לממשק הזה.

Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V # Use setRecentsScreenshotEnabled() instead.
Landroid/os/PowerManager;->isLightDeviceIdleMode()Z # Use isDeviceLightIdleMode() instead.
Landroid/os/Process;->setArgV0(Ljava/lang/String;)V # In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system.
Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V # Use android.accessibilityservice.AccessibilityService#clearCache() instead.