طلب أذونات تحديد الموقع الجغرافي

لحماية خصوصية المستخدمين، يجب أن تطلب التطبيقات التي تستخدم خدمات الموقع الجغرافي أذونات تحديد الموقع الجغرافي.

تتعلّق أذونات متعددة بالموقع الجغرافي. تعتمد الأذونات التي تطلبها وطريقة طلبها على متطلبات الموقع الجغرافي لحالة استخدام تطبيقك.

توضّح هذه الصفحة الأنواع المختلفة لمتطلبات الموقع الجغرافي وتشرح كيفية طلب أذونات الوصول إلى الموقع الجغرافي في كل حالة.

لطلب أذونات تحديد الموقع الجغرافي، اتّبِع أفضل الممارسات المتعلّقة بجميع أذونات وقت التشغيل.

أنواع الوصول إلى الموقع الجغرافي

يحتوي كل إذن على مجموعة من الخصائص التالية:

الموقع الجغرافي أثناء ظهور التطبيق على الشاشة

إذا كان تطبيقك يتضمّن ميزة تشارك معلومات الموقع الجغرافي أو تتلقّاها مرة واحدة فقط أو لمدة زمنية محددة، فإنّ هذه الميزة تتطلّب إذن الوصول إلى بيانات الموقع الجغرافي في المقدّمة. في ما يلي بعض الأمثلة:

  • في تطبيق للتنقل، تتيح إحدى الميزات للمستخدمين الحصول على اتجاهات مفصّلة.
  • في تطبيق مراسلة، تتيح إحدى الميزات للمستخدمين مشاركة موقعهم الجغرافي الحالي مع مستخدم آخر.

يعتبر النظام أنّ تطبيقك يستخدم الموقع الجغرافي في المقدّمة إذا كانت إحدى ميزات تطبيقك تصل إلى الموقع الجغرافي الحالي للجهاز في إحدى الحالات التالية:

  • يظهر نشاط يخص تطبيقك.
  • يشغّل تطبيقك خدمة تعمل في المقدّمة. عندما تكون خدمة تعمل في المقدّمة قيد التشغيل، يرفع النظام مستوى وعي المستخدم من خلال عرض إشعار دائم. يحتفظ تطبيقك بإذن الوصول عند وضعه في الخلفية، مثلما يحدث عندما يضغط المستخدم على زر الشاشة الرئيسية على جهازه أو عندما يوقف شاشة الجهاز.

    بالإضافة إلى ذلك، عليك تقديم بيان عن نوع الخدمة التي تعمل في المقدّمة وهو location، كما هو موضّح في مقتطف الرمز البرمجي التالي. في الإصدار 10 من نظام التشغيل Android (المستوى 29 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب تقديم بيان عن نوع الخدمة التي تعمل في المقدّمة.

    <!-- Recommended for Android 9 (API level 28) and lower. -->
    <!-- Required for Android 10 (API level 29) and higher. -->
    <service
        android:name="MyNavigationService"
        android:foregroundServiceType="location" ... >
        <!-- Any inner elements would go here. -->
    </service>
    

يجب الإفصاح عن الحاجة إلى إذن تحديد الموقع الجغرافي في المقدّمة عندما يطلب تطبيقك إما الإذن ACCESS_COARSE_LOCATION أو الإذن ACCESS_FINE_LOCATION، كما هو موضّح في المقتطف التالي:

<manifest ... >
  <!-- Always include this permission -->
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

  <!-- Include only if your app benefits from precise location access. -->
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>

رصد الموقع الجغرافي في الخلفية

يجب أن يطلب التطبيق إذن الوصول إلى بيانات الموقع الجغرافي في الخلفية إذا كانت إحدى الميزات داخل التطبيق تشارك الموقع الجغرافي باستمرار مع مستخدمين آخرين أو تستخدم Geofencing API. في ما يلي بعض الأمثلة:

  • في تطبيق لمشاركة الموقع الجغرافي مع العائلة، تتيح إحدى الميزات للمستخدمين مشاركة الموقع الجغرافي بشكل مستمر مع أفراد العائلة.
  • في أحد تطبيقات إنترنت الأشياء، تتيح إحدى الميزات للمستخدمين ضبط أجهزة المنزل بحيث يتم إيقافها عندما يغادر المستخدم المنزل وإعادة تشغيلها عندما يعود إليه.

يصنّف النظام تطبيقك على أنّه يستخدم بيانات الموقع الجغرافي في الخلفية إذا كان يصل إلى الموقع الجغرافي الحالي للجهاز في أي حالة أخرى غير الحالات الموضّحة في قسم الموقع الجغرافي في المقدّمة. تكون دقة الموقع الجغرافي في الخلفية هي نفسها دقة الموقع الجغرافي في المقدّمة، والتي تعتمد على أذونات الموقع الجغرافي التي يحدّدها تطبيقك.

على نظام التشغيل Android 10 (المستوى 29 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يجب الإفصاح عن إذن ACCESS_BACKGROUND_LOCATION في بيان تطبيقك من أجل طلب إذن الوصول إلى الموقع الجغرافي في الخلفية أثناء وقت التشغيل. في الإصدارات السابقة من Android، عندما يمنح المستخدم تطبيقك إذن الوصول إلى الموقع الجغرافي أثناء عمله في المقدّمة، يحصل التطبيق تلقائيًا على إذن الوصول إلى الموقع الجغرافي أثناء عمله في الخلفية أيضًا.

<manifest ... >
  <!-- Required only when requesting background location access on
       Android 10 (API level 29) and higher. -->
  <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
</manifest>

الدقة

يتيح Android مستويات دقة الموقع الجغرافي التالية:

تقريبي
تقدّم هذه الخدمة تقديرًا للموقع الجغرافي للجهاز. إذا كان تقدير الموقع الجغرافي هذا صادرًا عن LocationManagerService أو FusedLocationProvider، ستكون دقة هذا التقدير في حدود 3 كيلومترات مربّعة تقريبًا (أي 1.2 ميل مربّع تقريبًا). يمكن أن يتلقّى تطبيقك المواقع الجغرافية بهذا المستوى من الدقة عند الإفصاح عن إذن ACCESS_COARSE_LOCATION بدون الإفصاح عن إذن ACCESS_FINE_LOCATION.
دقيق
تقدّم تقديرًا للموقع الجغرافي للجهاز يكون دقيقًا قدر الإمكان. إذا كان تقدير الموقع الجغرافي من LocationManagerService أو FusedLocationProvider، يكون هذا التقدير عادةً في حدود 50 مترًا (160 قدمًا)، ويكون أحيانًا دقيقًا في حدود بضعة أمتار (10 أقدام) أو أكثر. يمكن لتطبيقك تلقّي المواقع الجغرافية بهذا المستوى من الدقة عند تعريف إذن ACCESS_FINE_LOCATION.

إذا منح المستخدم الإذن بتحديد الموقع الجغرافي التقريبي، لن يتمكّن تطبيقك من الوصول إلا إلى الموقع الجغرافي التقريبي، بغض النظر عن أذونات تحديد الموقع الجغرافي التي يطلبها تطبيقك.

يجب أن يظل تطبيقك يعمل عندما يمنح المستخدم إذن الوصول إلى الموقع الجغرافي التقريبي فقط. إذا كانت إحدى الميزات في تطبيقك تتطلّب الوصول إلى الموقع الجغرافي الدقيق باستخدام الإذن ACCESS_FINE_LOCATION، يمكنك أن تطلب من المستخدم السماح لتطبيقك بالوصول إلى الموقع الجغرافي الدقيق.

تذكير بمنح إذن تحديد الموقع الجغرافي في الخلفية

على نظام التشغيل Android 10 (المستوى 29 لواجهة برمجة التطبيقات) والإصدارات الأحدث، عندما تصل إحدى الميزات في تطبيقك إلى الموقع الجغرافي للجهاز في الخلفية لأول مرة بعد أن يمنح المستخدم إذن الوصول إلى الموقع الجغرافي في الخلفية، يجدول النظام إرسال إشعار إلى المستخدم. يذكّر هذا الإشعار المستخدم بأنّه سمح لتطبيقك بالوصول إلى الموقع الجغرافي للجهاز طوال الوقت. يظهر مثال على إشعار في الشكل 8.

التحقّق من متطلبات الموقع الجغرافي في تبعيات حزمة تطوير البرامج (SDK) لتطبيقك

تحقَّق مما إذا كان تطبيقك يستخدم أي حِزم SDK تعتمد على أذونات تحديد الموقع الجغرافي، وخاصةً الإذن ACCESS_FINE_LOCATION. يمكنك الاطّلاع على مزيد من المعلومات في منشور المدوّنة التعرّف على سلوكيات العناصر الاعتمادية لحزمة تطوير البرامج (SDK) على Medium.

مراجع إضافية

لمزيد من المعلومات حول أذونات تحديد الموقع الجغرافي في Android، يمكنك الاطّلاع على المواد التالية:

الدروس التطبيقية حول الترميز

الفيديوهات

نماذج

  • تطبيق نموذجي لتوضيح كيفية استخدام أذونات تحديد الموقع الجغرافي