حدود رصد الموقع الجغرافي في الخلفية
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
في إطار الجهود المبذولة لتقليل استهلاك الطاقة، يحدّ نظام التشغيل Android 8.0 (المستوى 26 من واجهة برمجة التطبيقات) من
عدد المرات التي يمكن للتطبيق فيها استرداد الموقع الجغرافي الحالي للمستخدم أثناء
تشغيل التطبيق في الخلفية. في ظلّ هذه
الظروف، يمكن للتطبيقات تلقّي معلومات الموقع الجغرافي بضع مرات فقط في كل ساعة.
ملاحظة: تنطبق هذه القيود على جميع التطبيقات المستخدَمة على الأجهزة التي تعمل بالإصدار 8.0 من نظام التشغيل Android (المستوى 26 من واجهة برمجة التطبيقات) أو إصدار أحدث، بغض النظر عن الإصدار المستهدف من حزمة تطوير البرامج (SDK) للتطبيق.
من المهم بشكلٍ خاص مراعاة سلوك استرجاع الموقع الجغرافي هذا
إذا كان تطبيقك يعتمد على التنبيهات في الوقت الفعلي أو رصد
الحركة أثناء تشغيله في الخلفية.
يتم الاحتفاظ بسلوك التطبيق الذي يعمل في المقدّمة
إذا كان التطبيق قيد التشغيل في المقدّمة على جهاز يعمل بنظام التشغيل Android 8.0 (المستوى 26 لواجهة برمجة التطبيقات)،
سيكون سلوك تحديث الموقع الجغرافي مطابقًا لسلوكه في الإصدار 7.1.1 من Android (المستوى 25
لواجهة برمجة التطبيقات) والإصدارات الأقدم.
تحذير: إذا كان تطبيقك يسترجع تعديلات الموقع الجغرافي بالقرب من الوقت الفعلي على مدار فترة زمنية طويلة، يصبح عمر بطارية الجهاز
أقصر بكثير.
ضبط سلوك الموقع الجغرافي لتطبيقك
يجب النظر في ما إذا كانت حالات استخدام تطبيقك للتشغيل في الخلفية لن تتمكّن
من النجاح على الإطلاق في حال تلقّي تطبيقك تعديلات غير متكررة على الموقع الجغرافي. في هذه الحالة،
يمكنك استرداد تعديلات الموقع الجغرافي بشكلٍ متكرّر من خلال تنفيذ أحد الإجراءَين التاليَين:
- اعرض تطبيقك في المقدّمة.
-
ابدأ خدمة
تعمل في المقدّمة في تطبيقك من خلال استدعاء
startForegroundService()
. عندما تكون هذه الخدمة التي تعمل في المقدّمة نشطة،
يظهر الإشعار المستمر في
منطقة
الإشعارات.
تحذير: إذا بدأ تطبيقك خدمة تعمل في المقدّمة
أثناء تشغيله في الخلفية على جهاز يعمل بالإصدار 11 من نظام التشغيل Android (المستوى
30 لواجهة برمجة التطبيقات) أو إصدار أحدث، لا يمكن لتطبيقك الوصول إلى معلومات الموقع الجغرافي ما لم يمنح
مستخدمه إذن
ACCESS_BACKGROUND_LOCATION
لتطبيقك. لمزيد من المعلومات، اطّلِع على الإرشادات حول قيود الاستخدام أثناء التشغيل المرتبطة بالخدمات التي تعمل في المقدّمة.
-
استخدِم عناصر واجهة برمجة التطبيقات Geofencing API، مثل
GeofencingClient
،
التي تم تحسينها لتقليل استهلاك الطاقة.
-
استخدام مستمع موقع جغرافي سلبي قد يتلقّى تحديثات الموقع الجغرافي بشكل أسرع
إذا كانت هناك تطبيقات في المقدّمة تطلب تحديثات الموقع الجغرافي بمعدّل أسرع
ملاحظة: إذا كان تطبيقك يحتاج إلى الوصول إلى سجلّ المواقع الجغرافية الذي يحتوي على تعديلات متكرّرة حسب الوقت، استخدِم الإصدار المجمّع من عناصر واجهة برمجة التطبيقات Fused Location
Provider API، مثل واجهة
FusedLocationProviderApi
. عندما يكون تطبيقك قيد التشغيل في الخلفية، تتلقّى واجهة برمجة التطبيقات هذه
الموقع الجغرافي للمستخدم بشكلٍ أكثر تكرارًا من واجهة برمجة التطبيقات غير المجمّعة. يُرجى العِلم، مع ذلك،
أنّ تطبيقك سيستمر في تلقّي التحديثات على دفعات بضع مرات فقط في كل ساعة.
واجهات برمجة التطبيقات المتأثرة
تؤثر التغييرات في سلوك استرداد الموقع الجغرافي في التطبيقات التي تعمل في الخلفية على
واجهات برمجة التطبيقات التالية:
- موفِّر
الموقع المدمج (FLP)
-
-
إذا كان تطبيقك قيد التشغيل في الخلفية، تعمل خدمة نظام الموقع الجغرافي
على احتساب موقع جغرافي جديد لتطبيقك بضع مرات فقط في كل ساعة. وينطبق ذلك
حتى عندما يطلب تطبيقك تعديلات على الموقع الجغرافي
بشكل متكرر.
باستخدام
الإصدار المجمّع من FLP، يمكنك الوصول إلى المزيد من
سجلّ المواقع الجغرافية بشكل متكرّر بعد أن يتلقّى تطبيقك تحديثًا مجمّعًا،
والذي يحدث أيضًا بضع مرات فقط في الساعة.
- إذا كان تطبيقك قيد التشغيل في المقدّمة، لن يحدث أي تغيير في
معدّلات تحليل الموقع الجغرافي مقارنةً بنظام التشغيل Android 7.1.1 (المستوى 25 لواجهة برمجة التطبيقات).
- وضع الحدود الجغرافية
-
- يمكن للتطبيقات التي تعمل في الخلفية تلقّي أحداث انتقال حدود المنطقة الجغرافية
بشكلٍ أكثر تكرارًا من التعديلات الواردة من "موفِّر الموقع الجغرافي المجمّع".
- يكون متوسّط وقت الاستجابة لحدث وضع حدود جغرافية كل بضع
دقائق تقريبًا.
- قياسات نظام تحديد المواقع العالمي (GNSS) ورسائل التنقّل في نظام تحديد المواقع العالمي (GNSS)
-
- إدارة المواقع الجغرافية
-
-
يتم إرسال معلومات الموقع الجغرافي إلى التطبيقات التي تعمل في الخلفية بضع مرات فقط
في كل ساعة.
ملاحظة: إذا كان تطبيقك يعمل على جهاز تم تثبيت
"خدمات Google Play" عليه، ننصحك بشدة باستخدام
موفِّر
الموقع الجغرافي المدمج (FLP) بدلاً من ذلك.
- مدير شبكة Wi-Fi
-
لا تُجري طريقة
startScan()
سوى فحص كامل للتطبيقات التي تعمل في الخلفية بضع مرات فقط في الساعة. إذا استدعى أحد التطبيقات التي تعمل في الخلفية الطريقة مرة أخرى بعد ذلك بوقت قصير، تقدّم فئة
WifiManager
النتائج المخزّنة مؤقتًا من عملية الفحص السابقة.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Background Location Limits\n\nIn an effort to reduce power consumption, Android 8.0 (API level 26) limits\nhow frequently an app can retrieve the user's current location while the app is\n[running in the background](/guide/background). Under these\nconditions, apps can receive location updates only a few times each hour.\n\n**Note:** These limitations apply to all apps used on devices\nrunning Android 8.0 (API level 26) or higher, **regardless of an app's\ntarget SDK version**.\n\nThis location retrieval behavior is particularly\nimportant to keep in mind if your app relies on real-time alerts or motion\ndetection while running in the background.\n\nForeground app behavior is preserved\n------------------------------------\n\n\nIf an app is in the foreground on a device running Android 8.0 (API level 26),\nthe location update behavior is the same as on Android 7.1.1 (API level\n25) and lower.\n\n**Warning:** If your app retrieves near real-time location\nupdates over a long period of time, the device's battery life becomes\nsignificantly shorter.\n\nTuning your app's location behavior\n-----------------------------------\n\nConsider whether your app's use cases for running in the background cannot\nsucceed at all if your app receives infrequent location updates. If this is the\ncase, you can retrieve location updates more frequently by performing one of the\nfollowing actions:\n\n- Bring your app to the foreground.\n- Start a [foreground\n service](/guide/components/foreground-services) in your app by calling\n [startForegroundService()](/reference/android/content/Context#startForegroundService(android.content.Intent)). When such a foreground service is active, it\n appears as an ongoing notification in the\n [notification\n area](/guide/topics/ui/notifiers/notifications).\n\n **Caution:** If your app starts a foreground service\n while running in the background on a device that runs Android 11 (API\n level 30) or higher, your app cannot access location information unless the\n user has granted the\n [`ACCESS_BACKGROUND_LOCATION`](/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION)\n permission to your app. For more information, view the guidance about the\n [while-in-use\n restrictions](/guide/components/foreground-services#while-in-use-restrictions) that are associated with foreground services.\n- Use elements of the Geofencing API, such as the [`GeofencingClient`](https://developers.google.com/android/reference/com/google/android/gms/location/GeofencingClient), which are optimized for minimizing power use.\n- Use a passive location listener, which may receive faster location updates if there are foreground apps requesting location updates at a faster rate.\n\n**Note:** If your app needs access to location history that\ncontains time-frequent updates, use the batched version of the Fused Location\nProvider API elements, such as the\n[`FusedLocationProviderApi`](https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi)\ninterface. When your app is running in the background, this API receives the\nuser's location more frequently than the non-batched API. Keep in mind, however,\nthat your app still receives updates in batches only a few times each hour.\n\nAffected APIs\n-------------\n\n\nThe changes to location retrieval behavior in background apps affect the\nfollowing APIs:\n\n[Fused\nLocation Provider (FLP)](https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi)\n:\n - If your app is running in the background, the location system service\n computes a new location for your app only a few times each hour. This\n is the case even when your app is requesting more frequent location\n updates.\n\n By using the\n [batched version](https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest#setMaxWaitTime(long)) of FLP, however, you have access to more\n time-frequent location history after your app receives a batch update,\n which also occurs only a few times each hour.\n - If your app is running in the foreground, there is no change in location sampling rates compared to Android 7.1.1 (API level 25).\n\nGeofencing\n:\n - Background apps can receive geofencing transition events more frequently than updates from the Fused Location Provider.\n - The average responsiveness for a geofencing event is every couple of minutes or so.\n\nGNSS Measurements and GNSS Navigation Messages\n:\n - When your app is in the background, callbacks that are registered to receive outputs from [GnssMeasurement](/reference/android/location/GnssMeasurement) and [GnssNavigationMessage](/reference/android/location/GnssNavigationMessage) stop executing.\n\nLocation Manager\n:\n - Location updates are provided to background apps only a few times\n each hour.\n\n\n **Note:** If your app is running on a device with\n Google Play services installed, it is highly recommended that you use\n the [Fused\n Location Provider (FLP)](https://developers.google.com/android/reference/com/google/android/gms/location/FusedLocationProviderApi) instead.\n\nWi-Fi Manager\n:\n The [startScan()](/reference/android/net/wifi/WifiManager#startScan()) method\n performs a full scan for background apps only a few times each hour. If a\n background app calls the method again soon afterward, the\n [WifiManager](/reference/android/net/wifi/WifiManager) class provides cached results from the\n previous scan."]]