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