البدء

قبل البدء

قبل البدء في كتابة الرموز البرمجية باستخدام Nearby Connections API، يجب:

طلب الحصول على الأذونات

قبل استخدام Nearby Connections، يجب أن يطلب تطبيقك الأذونات المناسبة. أضِف الأذونات التالية إلى ملف AndroidManifest.xml:

<!-- Required for Nearby Connections -->
<uses-permission android:maxSdkVersion="31" android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:maxSdkVersion="31" android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:maxSdkVersion="30" android:name="android.permission.BLUETOOTH" />
<uses-permission android:maxSdkVersion="30" android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:maxSdkVersion="28" android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:minSdkVersion="29" android:maxSdkVersion="31" android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:minSdkVersion="31" android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:minSdkVersion="31" android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:minSdkVersion="31" android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:minSdkVersion="32" android:name="android.permission.NEARBY_WIFI_DEVICES" />
<uses-permission android:minSdkVersion="37" android:name="android.permission.ACCESS_LOCAL_NETWORK" />
<!-- Optional: only required for FILE payloads -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

بما أنّ ACCESS_FINE_LOCATION و BLUETOOTH_ADVERTISE و BLUETOOTH_CONNECT و BLUETOOTH_SCAN و ACCESS_LOCAL_NETWORK (مطلوب بدءًا من Android 17 للتطبيقات التي تستهدف الإصدار 37 من حزمة SDK أو إصدارًا أحدث باستخدام WIFI_LAN) و READ_EXTERNAL_STORAGE تُعدّ أذونات نظام خطيرة، يجب طلب هذه الأذونات في وقت التشغيل، بالإضافة إلى إضافتها إلى ملف البيان، كما هو موضّح في مقالة طلب الأذونات.

إذا لم يمنح المستخدم جميع الأذونات المطلوبة، سترفض Nearby Connections API السماح لتطبيقك ببدء الإعلان أو الاكتشاف.