توضّح هذه الصفحة أفضل الممارسات لطلب أذونات استخدام الموقع الجغرافي في الخلفية وإدارتها.
طلب أذونات تحديد الموقع الجغرافي باختيار "السماح طوال الوقت"
بدءًا من الإصدار 14 من نظام التشغيل Android، يجب أن تحصل التطبيقات على إذن
ACCESS_BACKGROUND_LOCATION
للوصول إلى الموقع الجغرافي للمستخدم.
تتضمّن حزمة Navigation SDK هذا الإذن في ملف البيان الخاص بها، لذا لا تحتاج
إلى طلبه صراحةً (إذا لم يكن مطلوبًا لأغراض أخرى)، لأنّ
أداة دمج ملفات بيان Gradle ستضمن دمجه مع بيان التطبيق.
ومع ذلك، لا يكفي الحصول على إذن ACCESS_BACKGROUND_LOCATION
ل
الوصول إلى بيانات الموقع الجغرافي في الخلفية، وننصح بطلب أذونات الموقع الجغرافي "السماح في كل
الأوقات" من المستخدمين. يضمن ذلك إمكانية تشغيل التطبيق في
الخلفية وعرض الإشعارات، ما يزيد من دقة الموقع الجغرافي إلى أقصى حد أثناء
التنقّل.
يجب أن يوضّح الطلب للمستخدمين كيف سيؤدي منح الإذن إلى تحسين دقة تحديد الموقع الجغرافي وتحسين تجربة التنقّل عندما يكون التطبيق قيد التشغيل في الخلفية.
لمزيد من المعلومات حول مطالبة المستخدمين بالموافقة على الوصول إلى الموقع الجغرافي، يُرجى الاطّلاع على طلب أذونات تحديد الموقع الجغرافي | أدوات الاستشعار والموقع الجغرافي | مطوِّرو تطبيقات Android في مستندات مطوّري تطبيقات Android.
التأكّد من إزالة إشعارات التنقّل بشكلٍ سليم
لضمان عدم إبقاء تطبيقك للإشعارات نشطة بعد أن تصبح غير مطلوبة، احرص على تنفيذ خطوات التنظيف التالية:
- بعد استدعاء
startGuidance()
، احرص على استدعاءstopGuidance()
أوclearDestination()
. - بعد تسجيل
ArrivalListener
، احرص على إلغاء تسجيله. - بعد تسجيل
RoadSnappedLocationProvider
، احرص على إلغاء تسجيله.
يضمن إكمال هذه الخطوات عدم إبقاء الإشعارات نشطة عندما لم تعُد مطلوبة، ما قد يؤدي إلى استنزاف البطارية وتسرب الذاكرة المحتمَل.
عند إعادة استدعاء طرق initForegroundServiceManager من NavigationApi، استخدِم أولاً clearForegroundServiceManager من NavigationApi.
إذا كان تطبيقك يستخدم ForegroundServiceManager
، استخدِم
NavigationApi#clearForegroundServiceManager
قبل استخدام
NavigationApi#initForegroundServiceManagerProvider
، وإذا سبق أن
تم إعداد ForegroundServiceManager
، استخدِم
NavigationApi#initForegroundServiceManagerMessageAndIntent
. يمكنك إجراء ذلك لتعديل معرّف الإشعار أو محتوى الإشعار بعد بدء مدير الخدمة التي تعمل في المقدّمة.
لمحة عن القيود الجديدة التي تمّ إدخالها في Android 14
قدّم نظام التشغيل Android 14 (Android U) قيودًا جديدة على التطبيقات التي تصل إلى الموقع الجغرافي للمستخدم في الخلفية. للمساعدة في التخفيف من تأثير هذه التغييرات، تم تحديث حزمة Navigation SDK إلى الإصدار 5.4.0 لإدارة الوصول إلى الموقع الجغرافي في الخلفية بشكل أفضل. ننصحك أيضًا بتعديل عملية التنفيذ لضمان استمرار وصول تطبيقك إلى بيانات الموقع الجغرافي الأكثر دقة.
تأثير التغييرات في Android 14 على حزمة تطوير البرامج (SDK) لنظام التنقّل
عند استدعاء startGuidance()
في تطبيقك، تبدأ الخدمة التي تعمل في المقدّمة في عرض إشعارات للمستخدمين بشأن التنقّل بالتفصيل. تعتمد ميزة التنقّل باتّجاهات مفصّلة على التمكّن من
الوصول إلى الموقع الجغرافي للمستخدم من أجل تعديل المسار وعرض الإرشادات المرئية والصوتية الصحيحة. بدءًا من Android 14، يتطلب الوصول إلى
الموقع الجغرافي الدقيق للمستخدم في الخلفية الحصول على إذن من المستخدم. بشكلٍ تلقائي، إذا لم يكن لدى
التطبيق إذن المستخدم للوصول إلى بيانات الموقع الجغرافي في الخلفية ومحاولة
بدء خدمة تعمل في المقدّمة للحصول على آخر المعلومات حول الموقع الجغرافي، يُرسِل النظام SecurityException
، ما يؤدي إلى تعطُّل التطبيق.
كيفية تخفيف حزمة تطوير البرامج (SDK) لميزة التنقّل من هذه المشكلة
بدءًا من الإصدار 5.4.0، تعالج حزمة تطوير البرامج (SDK) للتنقّل هذه العمليةSecurityException
بدون التأثير في التطبيق، ما يسمح بمواصلة تشغيل التنقّل في
الخلفية. بالإضافة إلى ذلك، تتضمّن حزمة SDK لميزة التنقّل إذن
ACCESS_BACKGROUND_LOCATION
في AndroidManifest
. بهذه الطريقة، لن يحتاج
تطبيقك إلى الإفصاح عن الإذن نفسه، لأنّ دمج Gradle سيتولى
ذلك. ومع ذلك، إذا لم يتم عرض إشعار للمستخدم قبل أن ينتقل التطبيق
إلى الخلفية، ستعتمد حزمة تطوير البرامج (SDK) لنظام التنقّل على النظام لتوفير
تعديلات الموقع الجغرافي. قد لا تكون تحديثات النظام هذه متكررة أو دقيقة، ما يؤدي بدوره إلى
تقديم تجربة تنقّل دون المستوى الأمثل. لهذا السبب، ننصحك أيضًا
بمطالبة المستخدمين بالموافقة على الوصول إلى الموقع الجغرافي في الخلفية.
الإجراءات التي يمكن لمطوّري التطبيقات اتّخاذها لتحسين دقة الموقع الجغرافي في ما يتعلّق بالتنقّل
يمكنك تحسين دقة إشارة الموقع الجغرافي التي تستخدمها حزمة تطوير البرامج (SDK) لنظام التنقّل من خلال تعديل تطبيقك لطلب إذن الوصول إلى الموقع الجغرافي في الخلفية من المستخدمين. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة طلب أذونات تحديد الموقع الجغرافي باختيار "السماح طوال الوقت".