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

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

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

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

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

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.