مثل الإصدارات السابقة، يتضمّن الإصدار 13 من نظام التشغيل Android تغييرات في السلوك قد تؤثر في تطبيقك. تنطبق تغييرات السلوك التالية حصريًا على التطبيقات التي تستهدف الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث. إذا كان تطبيقك يستهدف الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث، عليك تعديله لتوفير هذه السلوكيات بشكلٍ سليم، حيثما ينطبق ذلك.
احرص أيضًا على مراجعة قائمة التغييرات في السلوك التي تؤثر في جميع التطبيقات التي تعمل بنظام التشغيل Android 13.
الخصوصية
تأثير إذن الإشعارات في ظهور الخدمة التي تعمل في المقدّمة
إذا رفض المستخدم إذن الإشعارات، لن تظهر له الإشعارات المتعلّقة بالخدمات التي تعمل في المقدّمة في درج الإشعارات. ومع ذلك، سيظل بإمكان المستخدمين الاطّلاع على إشعارات ذات صلة بالخدمات التي تعمل في المقدّمة في إدارة المهام، بغض النظر عمّا إذا تم منح إذن إرسال الإشعارات أم لا.
إذن تشغيل جديد لأجهزة Wi-Fi المجاورة
في الإصدارات السابقة من Android، على المستخدم منح تطبيقك إذن
ACCESS_FINE_LOCATION
لإكمال العديد من الحالات الشائعة لاستخدام Wi-Fi.
نظرًا لصعوبة ربط أذونات تحديد الموقع الجغرافي بوظيفة Wi-Fi، يوفِّر Android 13 (المستوى 33 من واجهة برمجة التطبيقات) إذن تشغيل في مجموعة أذونات
NEARBY_DEVICES
للتطبيقات التي تدير اتصالات الأجهزة بنقاط الوصول القريبة
عبر شبكة Wi-Fi. يلبي هذا الإذن،
NEARBY_WIFI_DEVICES
،
حالات استخدام شبكة Wi-Fi، مثل ما يلي:
- العثور على الأجهزة المجاورة أو الاتصال بها، مثل الطابعات أو أجهزة بث الوسائط
ويسمح سير العمل هذا لتطبيقك بإنجاز المهام التالية:
- تلقّي معلومات نقطة الاتصال خارج النطاق، مثل من خلال تقنية BLE
- يمكنك العثور على الأجهزة والاتصال بها عبر تقنية Wi-Fi Aware والاتصال باستخدام نقطة اتصال للأجهزة المحلية فقط.
- اكتشاف الأجهزة والربط بها عبر تقنية "الاتصال Wi-Fi المباشر"
- ابدأ الاتصال بمعرّف SSID معروف، مثل سيارة أو جهاز منزلي ذكي.
- شغِّل نقطة اتصال للأجهزة المحلية فقط.
- النطاق الذي يمكن فيه الاتصال بالأجهزة المجاورة التي تتضمّن تقنية "الاستشعار عبر Wi-Fi"
طالما أنّ تطبيقك لا يحصل على معلومات الموقع الجغرافي الفعلي من واجهات برمجة تطبيقات Wi-Fi، يمكنك طلب NEARBY_WIFI_DEVICES
بدلاً من ACCESS_FINE_LOCATION
عند استهداف الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث واستخدام واجهات برمجة تطبيقات Wi-Fi. عند الإفصاح عن
إذن NEARBY_WIFI_DEVICES
، يجب التأكيد بشدة على أنّ تطبيقك لا يستخرج أبدًا
معلومات الموقع الجغرافي من واجهات برمجة تطبيقات Wi-Fi. لإجراء ذلك، اضبط
السمة android:usesPermissionFlags
على neverForLocation
. تشبه هذه العملية الطريقة التي تستخدمها في نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث عند
التأكيد على أنّ معلومات الجهاز الذي يتضمّن بلوتوث لا تُستخدم أبدًا
للموقع الجغرافي.
تعرَّف على مزيد من المعلومات حول كيفية طلب إذن بالوصول إلى أجهزة Wi-Fi القريبة.
أذونات الوسائط الدقيقة
READ_MEDIA_AUDIO
إذا كان تطبيقك يستهدف الإصدار 13 من نظام التشغيل Android أو إصدارًا أحدث ويحتاج إلى الوصول إلى ملفات الوسائط التي أنشأتها التطبيقات الأخرى، عليك طلب إذن واحد أو أكثر من أذونات الوسائط الدقيقة التالية بدلاً من إذن READ_EXTERNAL_STORAGE
:
نوع الوسائط | الإذن المطلوب |
---|---|
الصور | READ_MEDIA_IMAGES |
الفيديوهات | READ_MEDIA_VIDEO |
ملفات صوتية | READ_MEDIA_AUDIO |
قبل الوصول إلى ملفات الوسائط لتطبيق آخر، تأكَّد من أنّ المستخدم قد منح تطبيقك أذونات الوسائط الدقيقة المناسبة.
يعرض الشكل 1 تطبيقًا يطلب إذن READ_MEDIA_AUDIO
.
إذا طلبت إذن READ_MEDIA_IMAGES
وإذن
READ_MEDIA_VIDEO
في الوقت نفسه، سيظهر مربّع حوار واحد فقط لإذن النظام
.
إذا سبق أن تم منح تطبيقك إذن
READ_EXTERNAL_STORAGE
،
سيتم منح أي أذونات READ_MEDIA_*
مطلوبة
تلقائيًا عند الترقية. يمكنك استخدام الأمر ADB التالي لمراجعة
الأذونات التي تمت ترقيتها:
adb shell cmd appops get --uid PACKAGE_NAME
يجب منح إذن جديد لاستخدام أجهزة استشعار الجسم في الخلفية
يقدّم Android 13 مفهوم الوصول "أثناء الاستخدام" لأجهزة استشعار الجسم، مثل معدّل نبضات القلب ودرجة الحرارة ونسبة الأكسجين في الدم. ويشبه نموذج الوصول هذا إلى حد كبير النموذج الذي قدّمه النظام للموقع الجغرافي في Android 10 (مستوى واجهة برمجة التطبيقات 29).
إذا كان تطبيقك يستهدف الإصدار 13 من نظام التشغيل Android ويتطلّب الوصول إلى
معلومات أجهزة استشعار الجسم أثناء تشغيله في الخلفية، يجب تقديم بيان بشأن الإذن الجديد
BODY_SENSORS_BACKGROUND
بالإضافة إلى الإذن الحالي
BODY_SENSORS
.
الأداء والبطارية
استخدام موارد البطارية
إذا وضع المستخدم تطبيقك في الحالة "محظور" بسبب استخدام البطارية في الخلفية
بينما يستهدف تطبيقك الإصدار 13 من نظام التشغيل Android، لا يُرسِل النظام بث BOOT_COMPLETED
أو بث LOCKED_BOOT_COMPLETED
إلى أن يتم بدء
التطبيق لأسباب أخرى.
تجربة المستخدم
عناصر التحكّم في الوسائط المستمَدة من PlaybackState
بالنسبة إلى التطبيقات التي تستهدف الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يستمِد النظام
عناصر التحكّم في الوسائط من إجراءات
PlaybackState
. ويتيح ذلك للنظام عرض مجموعة أكبر من عناصر التحكّم المتوافقة من الناحية الفنية بين الهواتف والأجهزة اللوحية، وتتوافق أيضًا مع طريقة عرض عناصر التحكّم في الوسائط على أنظمة Android الأساسية الأخرى، مثل Android Auto وAndroid TV.
يوضح الشكل 2 مثالاً على كيف يبدو هذا على هاتف وجهاز لوحي، على التوالي.

في الإصدارات السابقة من Android 13، كان النظام يعرض ما يصل إلى خمسة إجراءات من إشعار MediaStyle
بترتيب إضافتها.
في الوضع المكثّف، على سبيل المثال، في الإعدادات السريعة المصغّرة، تم عرض ما يصل إلى ثلاثة إجراءات محدّدة باستخدام setShowActionsInCompactView()
.
بدءًا من Android 13، يعرض النظام ما يصل إلى خمسة أزرار إجراءات استنادًا
إلى PlaybackState
كما هو موضّح في الجدول التالي. في الوضع المكثّف، سيتم عرض أول ثلاث
خانات إجراءات فقط. بالنسبة إلى التطبيقات التي لا تستهدف الإصدار 13 من نظام التشغيل Android أو تلك التي
لا تتضمّن علامة PlaybackState
، سيعرض النظام عناصر التحكّم استنادًا إلى قائمة Action
المُضافة إلى إشعار MediaStyle
كما هو موضّح في الفقرة السابقة.
الشريحة | الإجراء | المعايير |
---|---|---|
1 | تشغيل |
تكون الحالة الحالية للPlaybackState إحدى الحالات التالية:
|
مؤشر سريان العمل |
الحالة الحالية لـ PlaybackState هي واحدة مما يلي:
|
|
إيقاف مؤقت | حالة PlaybackState الحالية هي لا شيء مما سبق. |
|
2 | الصفحة السابقة | تشمل PlaybackState الإجراءات ACTION_SKIP_TO_PREVIOUS . |
قرض مخصص | لا تتضمّن PlaybackState الإجراءات ACTION_SKIP_TO_PREVIOUS وPlaybackState الإجراءات المخصّصة إجراءً مخصّصًا لم يتم وضعه بعد. |
|
فارغ | PlaybackState تشمل الإضافات قيمة منطقية true للمفتاح SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_PREV . |
|
3 | التالي | تشمل PlaybackState الإجراءات ACTION_SKIP_TO_NEXT . |
قرض مخصص | PlaybackState لا تشمل الإجراءات ACTION_SKIP_TO_NEXT ، بينما تتضمّن الإجراءات المخصّصة في PlaybackState إجراءً مخصّصًا لم يتم وضعه إلى الآن. |
|
فارغ | تتضمّن العناصر الإضافية في PlaybackState قيمة منطقية true للمفتاح SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_NEXT . |
|
4 | قرض مخصص | تتضمّن الإجراءات المخصّصة في PlaybackState إجراءً مخصّصًا لم يتم وضعه بعد. |
5 | قرض مخصص | تتضمّن الإجراءات المخصّصة في PlaybackState إجراءً مخصّصًا لم يتم وضعه بعد. |
يتم ترتيب الإجراءات المخصّصة بترتيب إضافتها إلى
PlaybackState
.
تطبيق مظهر ألوان التطبيق تلقائيًا على محتوى WebView
بالنسبة إلى التطبيقات التي تستهدف الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث، تم إيقاف الإجراء
setForceDark()
نهائيًا، ما يؤدي إلى عدم تنفيذ أي إجراء في حال استدعائه.
وبدلاً من ذلك، يضبط WebView الآن دائمًا
طلب البحث عن الوسائط prefers-color-scheme
وفقًا لسمة مظهر التطبيق،
isLightTheme
. بعبارة أخرى،
إذا كانت قيمة isLightTheme
هي true
أو لم يتم تحديدها، تكون قيمة prefers-color-scheme
هي
light
، وإلا ستكون dark
. يعني هذا السلوك أنّه يتم تطبيق النمط الفاتح أو الداكن لمحتوى الويب
تلقائيًا لمطابقة مظهر التطبيق إذا كان المحتوى يتيح ذلك.
في معظم التطبيقات، من المفترض أن يطبّق السلوك الجديد أنماط التطبيق المناسبة تلقائيًا، ولكن عليك اختبار تطبيقك للتحقّق من أي حالات قد يكون فيها تطبيقك يتحكّم يدويًا في إعدادات الوضع الداكن.
إذا كنت لا تزال بحاجة إلى تخصيص سلوك مظهر التطبيق اللوني، استخدِم الطريقة
setAlgorithmicDarkeningAllowed()
بدلاً من ذلك. لضمان التوافق مع الإصدارات السابقة من Android، ننصحك
باستخدام الأسلوب المكافئ
setAlgorithmicDarkeningAllowed()
في AndroidX.
اطّلِع على مستندات هذه الطريقة لمعرفة المزيد من المعلومات عن السلوك الذي يمكن أن
تتوقّعه في تطبيقك استنادًا إلى إعدادات
targetSdkVersion
والمظهر
في تطبيقك.
إمكانية الاتصال
الإيقاف النهائي لوظيفتَي BluetoothAdapter#enable() وBluetoothAdapter#disable()
بالنسبة إلى التطبيقات التي تستهدف Android 13 (المستوى 33 من واجهة برمجة التطبيقات) أو الإصدارات الأحدث، تم إيقاف الطريقتَين
BluetoothAdapter#enable()
وBluetoothAdapter#disable()
نهائيًا وتعرضان
false
دائمًا.
يتم استثناء الأنواع التالية من التطبيقات من هذه التغييرات:
- تطبيقات مالك الجهاز
- تطبيقات مالك الملف الشخصي
- تطبيقات النظام
خدمات Google Play
الإذن مطلوب للمعرِّف الإعلاني
على التطبيقات التي تستخدم المعرّف
الإعلاني في "خدمات Google Play" وتستهدف الإصدار 13 من نظام التشغيل Android (المستوى 33 من واجهة برمجة التطبيقات) والإصدارات الأحدث
تقديم بيان بالإذن العادي AD_ID
في ملف البيان
على النحو التالي:
<manifest ...>
<!-- Required only if your app targets Android 13 or higher. -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<application ...>
...
</application>
</manifest>
إذا لم يقدّم تطبيقك بيانًا لهذا الإذن عند استهداف الإصدار 13 من Android أو إصدار أحدث، ستتم تلقائيًا إزالة المعرِّف الإعلاني واستبداله بسلسلة من الأصفار.
إذا كان تطبيقك يستخدم حِزم SDK تعلن عن إذن AD_ID
في ملف بيان
المكتبة، سيتم دمج الإذن تلقائيًا مع ملف بيان تطبيقك.
في هذه الحالة، لا تحتاج إلى الإفصاح عن الإذن فيملف بيان تطبيقك.
لمزيد من المعلومات، يُرجى الاطّلاع على المعرِّف الإعلاني في مركز مساعدة Play Console.
قيود غير متاحة في حزمة SDK تم تعديلها
يتضمّن نظام التشغيل Android 13 قوائم معدَّلة للواجهات غير المتوافقة مع حِزم تطوير البرامج (SDK) والتي تم حظرها استنادًا إلى التعاون مع مطوّري تطبيقات Android وأحدث الاختبار الداخلي. نحرص على توفّر بدائل عامة كلما أمكن ذلك قبل حظر الواجهات غير المتوفّرة في حزمة SDK.
إذا لم يكن تطبيقك يستهدف نظام التشغيل Android 13، قد لا تؤثر بعض هذه التغييرات في تطبيقك بشكل فوري. ومع أنّه يمكنك حاليًا استخدام بعض واجهات غير حزمة SDK (استنادًا إلى مستوى واجهة برمجة التطبيقات المستهدَف في تطبيقك)، فإنّ استخدام أي طريقة أو حقل غير حزمة SDK ينطوي دائمًا على خطر كبير بتعطُّل تطبيقك.
إذا لم تكن متأكدًا مما إذا كان تطبيقك يستخدم واجهات غير متوفرة في حزمة SDK، يمكنك اختبار تطبيقك لمعرفة ذلك. إذا كان تطبيقك يعتمد على واجهات غير متوفرة في حزمة SDK، عليك بدء التخطيط لنقل البيانات إلى بدائل حِزم SDK. ومع ذلك، ندرك أنّ بعض التطبيقات لديها حالات استخدام صالحة لاستخدام واجهات غير متوفرة في حزمة SDK. إذا لم تتمكّن من العثور على بديل لاستخدام واجهة غير متوفرة في حزمة SDK لميزة في تطبيقك، يجب طلب واجهة برمجة تطبيقات عامة جديدة.
للاطّلاع على مزيد من المعلومات عن التغييرات في هذا الإصدار من Android، اطّلِع على التعديلات على قيود واجهات غير حزمة SDK في Android 13. للاطّلاع على مزيد من المعلومات حول الواجهات غير المتوفّرة في حزمة SDK بشكل عام، اطّلِع على القيود المفروضة على الوجهات غير المتوفّرة في حزمة SDK.