تعديلات على قيود الواجهة غير المتوفرة في حزمة تطوير البرامج (SDK) في Android 13

يتضمّن Android 13 قوائم معدَّلة بواجهات غير متوفّرة في حزمة SDK ومحظورة استنادًا إلى التعاون مع مطوّري Android وأحدث الاختبارات الداخلية. نحرص قدر الإمكان على توفير بدائل عامة قبل حظر الواجهات غير المتوفّرة في حزمة SDK.

إذا كان تطبيقك لا يستهدف Android 13، قد لا تؤثر بعض هذه التغييرات فيه على الفور. ومع ذلك، على الرغم من أنّه يمكنك حاليًا استخدام بعض الواجهات غير المتوفّرة في حزمة SDK (حسب مستوى واجهة برمجة التطبيقات المستهدَف في تطبيقك level)، فإنّ استخدام أي طريقة أو حقل غير متوفّر في حزمة SDK يحمل دائمًا خطرًا كبيرًا بتعطُّل تطبيقك app.

إذا لم تكن متأكدًا مما إذا كان تطبيقك يستخدم واجهات غير متوفّرة في حزمة SDK، يمكنك اختبار تطبيقك لمعرفة ذلك. إذا كان تطبيقك يعتمد على واجهات غير متوفّرة في حزمة SDK، عليك البدء في التخطيط لنقله إلى بدائل متوفّرة في حزمة SDK. ومع ذلك، ندرك أنّ بعض التطبيقات لديها حالات استخدام صالحة لاستخدام واجهات غير متوفّرة في حزمة SDK. إذا لم تتمكّن من العثور على بديل لاستخدام واجهة غير متوفّرة في حزمة SDK لميزة في تطبيقك، عليك طلب واجهة برمجة تطبيقات عامة جديدة.

تغييرات القوائم في Android 13

تنتمي تغييرات القوائم في Android 13 إلى الفئة التالية:

  • الواجهات غير المتوفّرة في حزمة تطوير البرامج (SDK) التي كانت غير متوافقة في Android 12 (المستوى 31 لواجهة برمجة التطبيقات) التي هي محظورة في Android 13.

للاطّلاع على قائمة كاملة بجميع الواجهات غير المتوفّرة في حزمة SDK لنظام Android 13، نزِّل الملف التالي:

الملف: hiddenapi-flags.csv

مجموع التحقّق SHA-256: ‏233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

الواجهات غير المتوفّرة في حزمة SDK والمحظورة الآن في Android 13

يعرض مربّع الرموز البرمجية التالي جميع الواجهات غير المتوفّرة في حزمة تطوير البرامج (SDK) التي كانت غير متوافقة في Android 12 (مستوى واجهة برمجة التطبيقات 31) والمحظورة في Android 13 (مستوى واجهة برمجة التطبيقات 33). أي أنّ هذه الواجهات تنتمي إلى قائمة max-target-s، لذا لا يمكن لتطبيقك استخدام هذه الواجهات إلا إذا كان يستهدف Android 12 (مستوى واجهة برمجة التطبيقات 31) أو الإصدارات الأقدم.

هدفنا هو التأكّد من توفّر بدائل عامة قبل حظر الواجهات غير المتوفّرة في حزمة SDK، وندرك أنّه قد يكون لتطبيقك حالة استخدام صالحة لاستخدام هذه الواجهات. إذا كانت إحدى الواجهات التي يستخدمها تطبيقك في إصدار سابق محظورة الآن في Android 13، عليك طلب واجهة برمجة تطبيقات عامة جديدة لهذه الواجهة.

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.