لحماية خصوصية المستخدم، يجب أن تطلب التطبيقات التي تستخدم خدمات الموقع الجغرافي أذونات تحديد الموقع الجغرافي.
ترتبط أذونات متعددة بالموقع الجغرافي. تعتمد الأذونات التي تطلبها، وطريقة طلبها، على متطلبات الموقع الجغرافي لحالة استخدام تطبيقك.
توضّح هذه الصفحة الأنواع المختلفة لمتطلبات تحديد الموقع الجغرافي وتشرح كيفية طلب أذونات تحديد الموقع الجغرافي في كل حالة.
لطلب أذونات تحديد الموقع الجغرافي، اتّبِع أفضل الممارسات لجميع أذونات التشغيل.
أنواع الوصول إلى الموقع الجغرافي
يحتوي كل إذن على مجموعة من الخصائص التالية:
- الفئة: إما الموقع الجغرافي في المقدّمة أو الموقع الجغرافي في الخلفية.
- الدقة: إما الموقع الجغرافي الدقيق أو التقريبي
الموقع الجغرافي في المقدّمة
إذا كان تطبيقك يتضمّن ميزة تشارك معلومات الموقع الجغرافي أو تتلقّاها مرة واحدة فقط أو لفترة زمنية محدّدة، يجب أن تحصل هذه الميزة على إذن الوصول إلى الموقع الجغرافي في المقدّمة. في ما يلي بعض الأمثلة:
- تتيح ميزة في تطبيق التنقّل للمستخدمين الحصول على اتجاهات مفصّلة.
- تتيح ميزة في تطبيق مراسلة للمستخدمين مشاركة موقعهم الجغرافي الحالي مع مستخدم آخر.
يعتبر النظام أنّ تطبيقك يستخدم الموقع الجغرافي في المقدّمة إذا كانت إحدى ميزات تطبيقك تحصل على الموقع الجغرافي الحالي للجهاز في أحد المواقف التالية:
- إذا كان هناك نشاط ينتمي إلى تطبيقك مرئيًا
يشغِّل تطبيقك خدمة تعمل في المقدّمة. عندما تكون إحدى الخدمات التي تعمل في المقدّمة قيد التشغيل، يُعلِم النظام المستخدم من خلال عرض إشعار دائم. يحتفظ تطبيقك بالوصول إلى البيانات عندما يكون في الخلفية، مثلاً عندما يضغط المستخدم على زر الصفحة الرئيسية على جهازه أو يُطفئ شاشة جهازه.
بالإضافة إلى ذلك، عليك تقديم بيان عن نوع الخدمة التي تعمل في المقدّمة وهو
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. تشمل العديد من الأمثلة ما يلي:
- تتيح ميزة في تطبيق مشاركة الموقع الجغرافي مع العائلة للمستخدمين باستمرار مشاركة الموقع الجغرافي مع أفراد العائلة.
- تتيح ميزة في أحد تطبيقات إنترنت الأشياء للمستخدمين ضبط أجهزتهم المنزلية بحيث يتم إيقافها عندما يغادر المستخدم منزله وإعادة تشغيلها مجددًا عند عودته إلى المنزل.
يعتبر النظام أنّ تطبيقك يستخدم الموقع الجغرافي في الخلفية إذا كان يحصل على الموقع الجغرافي الحالي للجهاز في أيّ حالة غير تلك الموضّحة في القسم الموقع الجغرافي في المقدّمة. تكون دقة الموقع الجغرافي في الخلفية مماثلة لـ دقة الموقع الجغرافي في المقدّمة، والتي تعتمد على أذونات الموقع الجغرافي التي يعلن عنها تطبيقك.
في الإصدار 10 من نظام التشغيل Android (المستوى 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
، يمكنك أن تطلب من المستخدم السماح لتطبيقك
بالوصول إلى الموقع الجغرافي الدقيق.
تذكير بمنح إذن الوصول إلى الموقع الجغرافي في الخلفية
في الإصدار 10 من نظام Android (المستوى 29 من واجهة برمجة التطبيقات) والإصدارات الأحدث، عندما تصل ميزة في تطبيقك إلى الموقع الجغرافي للجهاز في الخلفية للمرة الأولى بعد أن يمنح المستخدم permissão للوصول إلى الموقع الجغرافي في الخلفية، يحدّد النظام موعدًا لإرسال إشعار إلى المستخدم. يذكّر هذا الإشعار المستخدم بأنّه سمح لتطبيقك بالوصول إلى الموقع الجغرافي للجهاز طوال الوقت. يظهر مثال على الإشعار في الشكل 8.
التحقّق من متطلبات الموقع الجغرافي في متطلّبات حِزمة تطوير البرامج (SDK) لتطبيقك
تحقّق مما إذا كان تطبيقك يستخدم أيّ حِزم تطوير برامج (SDK) تعتمد على أذونات تحديد الموقع الجغرافي،
وخاصةً إذن ACCESS_FINE_LOCATION
. لمزيد من المعلومات، يمكنك قراءة مشاركة المدوّنة التعرّف على
سلوكيات العناصر الاعتمادية لحِزم تطوير البرامج (SDK) على Medium.
مصادر إضافية
لمزيد من المعلومات حول أذونات تحديد الموقع الجغرافي في Android، يمكنك الاطّلاع على المراجع التالية:
الدروس التطبيقية حول الترميز
الفيديوهات
نماذج
- نموذج تطبيق لعرض استخدام أذونات تحديد الموقع الجغرافي