على التطبيقات التي تستهدف الإصدار 13 من نظام التشغيل Android (المستوى 33 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث وتدير عمليات الاتصال بشبكة Wi-Fi
طلب
NEARBY_WIFI_DEVICES
إذن التشغيل. يسهّل هذا
الإذن تبرير وصول التطبيق إلى أجهزة Wi-Fi المجاورة،
ففي الإصدارات السابقة من Android، كان على هذه التطبيقات الإفصاح عن استخدام
ACCESS_FINE_LOCATION
الإذن بدلاً من ذلك.
إذا كان الإذن جزءًا من مجموعة "الأجهزة المجاورة"
يُعدّ إذن NEARBY_WIFI_DEVICES
جزءًا من مجموعة أذونات الأجهزة المجاورة. تتضمّن هذه المجموعة، التي تمت إضافتها في Android 12 (المستوى 31 من واجهة برمجة التطبيقات)، أيضًا
أذونات ذات صلة بتقنية Bluetooth وتقنية النطاق الفائق العرض. عند طلب أي
مزيج من الأذونات من مجموعة الأذونات هذه، يعرض النظام مربع حوار واحدًا
أثناء التشغيل ويطلب من المستخدم الموافقة على وصول تطبيقك إلى الأجهزة المجاورة.
في إعدادات النظام، على المستخدم تفعيل أذونات الأجهزة المجاورة
وإيقافها كمجموعة. على سبيل المثال، لا يمكن للمستخدمين إيقاف إمكانية الوصول إلى شبكة Wi-Fi مع إبقاء إمكانية الوصول إلى البلوتوث مفعَّلة لتطبيق معيّن.
تأكيد بشكل قاطع أنّ تطبيقك لا يستخرج الموقع الجغرافي
عند استهداف الإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث، ننصحك بالتفكير في ما إذا كان تطبيقك
يحصل على معلومات الموقع الجغرافي من واجهات برمجة تطبيقات 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 على الأجهزة التي تعمل بالإصدار
Android 13 أو إصدار أحدث، وذلك للتطبيقات التي تستهدف الإصدار
Android 13 أو إصدار أحدث. يُرجى العِلم أنّه ما دام تطبيقك
لا يستخرج الموقع الجغرافي من معلومات أجهزة Wi-Fi، لن تحتاج
إلى الإفصاح عن إذن ACCESS_FINE_LOCATION
بعد الآن:
يعرض الشكل 2 سير عمل الوصول إلى شبكة Wi-Fi على الأجهزة التي تعمل بالإصدار 12L أو إصدار أقل. يُرجى ملاحظة الاعتماد على إذن
ACCESS_FINE_LOCATION
.