على التطبيقات التي تستهدف الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث وتدير عمليات الاتصال بشبكة Wi-Fi
طلب
NEARBY_WIFI_DEVICES
إذن التشغيل. يسهّل هذا
الإذن تبرير وصول التطبيق إلى أجهزة Wi-Fi المجاورة،
ففي الإصدارات السابقة من Android، كان على هذه التطبيقات الإفصاح عن استخدام
ACCESS_FINE_LOCATION
الإذن بدلاً من ذلك.
الإذن جزء من مجموعة الأجهزة المجاورة
يتضمن إذن NEARBY_WIFI_DEVICES
جزءًا من الأجهزة المجاورة
مجموعة أذونات. تتضمن هذه المجموعة، التي تمت إضافتها في Android 12 (المستوى 31)، أيضًا
الأذونات المرتبطة بالبلوتوث وتقنية النطاق الفائق العرض. عند طلب أي
مزيج من الأذونات من مجموعة الأذونات هذه، يعرض النظام مربع حوار
واحدًا أثناء التشغيل ويطلب من المستخدم الموافقة على وصول تطبيقك إلى الأجهزة المجاورة.
في إعدادات النظام، على المستخدم تفعيل أذونات الأجهزة المجاورة
وإيقافها كمجموعة. على سبيل المثال، لا يمكن للمستخدمين إيقاف إمكانية الوصول إلى شبكة Wi-Fi مع إبقاء إمكانية الوصول إلى البلوتوث مفعَّلة لتطبيق معيّن.
تأكيد بشكل قاطع أنّ تطبيقك لا يستخرج الموقع الجغرافي
عند استهداف نظام التشغيل Android 13 أو الإصدارات الأحدث، فكِّر في ما إذا كان تطبيقك
يشتق معلومات الموقع من واجهات برمجة تطبيقات Wi-Fi، وإذا لم يكن الأمر كذلك، فيجب عليك
وتأكيد ذلك. لإجراء هذا الإجراء، اضبط سمة usesPermissionFlags
على
neverForLocation
في ملف بيان تطبيقك، كما هو موضّح في مقتطف الرمز التالي
. وتتشابه هذه العملية مع تلك التي تجريها عند
التأكيد على أنّ معلومات الجهاز الذي يتضمّن بلوتوث لا تُستخدَم مطلقًا لتحديد الموقع الجغرافي:
<manifest ...> <uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES" android:usesPermissionFlags="neverForLocation" /> <application ...> ... </application> </manifest>
تتطلّب الإصدارات السابقة وبعض واجهات برمجة التطبيقات الحصول على إذن تحديد الموقع الجغرافي.
تتطلب العديد من واجهات برمجة تطبيقات Wi-Fi الحصول على إذن ACCESS_FINE_LOCATION
، حتى في حال
يستهدف الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث. تشمل الأمثلة يلي
الطرق من فئة WifiManager
:
بالإضافة إلى ذلك، بما أنّ إذن NEARBY_WIFI_DEVICES
لا يتوفّر إلا على
Android 13 والإصدارات الأحدث، عليك الاحتفاظ بأيّ إقرارات
ACCESS_FINE_LOCATION
لتوفير التوافق مع الإصدارات القديمة في تطبيقك. ومع ذلك، ما دام تطبيقك
لا يعتمد على
معلومات الموقع الجغرافي الدقيقة، يمكنك
ضبط الحد الأقصى لإصدار حزمة تطوير البرامج (SDK) لهذا الإذن على 32
، كما هو موضّح في مقتطف الرمز التالي:
<manifest ...> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="32" /> <application ...> ... </application> </manifest>
البحث عن واجهات برمجة التطبيقات التي تتطلّب الحصول على الإذن
إذا كان تطبيقك يستهدف الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث، يجب الإفصاح عن إذن
NEARBY_WIFI_DEVICES
للاتصال بأي من واجهات برمجة تطبيقات Wi-Fi التالية:
WifiManager
WifiAwareManager
WifiAwareSession
WifiP2pManager
WifiRttManager
مسارات العمل للوصول إلى شبكة Wi-Fi
يوضح الشكل 1 سير عمل الوصول إلى Wi-Fi على الأجهزة التي تعمل
الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث، للتطبيقات التي تستهدف
الإصدار 13 من نظام التشغيل Android أو إصدار أحدث يُرجى العِلم أنّه ما دام تطبيقك
لا يستخرج الموقع الجغرافي من معلومات جهاز Wi-Fi، لن تحتاج
إلى الإفصاح عن إذن ACCESS_FINE_LOCATION
بعد الآن:
يوضح الشكل 2 سير عمل الوصول إلى Wi-Fi على الأجهزة التي تعمل
12L أو أقل. لاحظ الاعتماد على
إذن ACCESS_FINE_LOCATION
.