الحصول على الموقع الجغرافي التقريبي

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

  • تتطلّب واجهة برمجة التطبيقات LocationManager استخدام requestLocationUpdates لتحديد مقدِّم خدمة الموقع الجغرافي المفضّل بشكل صريح.

  • توفّر لك واجهة برمجة التطبيقات Google Play Services API طريقة أكثر وضوحًا للتعامل مع الموقع الجغرافي في FusedLocationProviderClient.

يستخدم العديد من تطبيقات السيارات واجهة برمجة التطبيقات FLP من Google Play Services API بدلاً من LocationManager. يختار FLP مقدّم خدمة الموقع الجغرافي الأمثل استنادًا إلى معايير طلب الموقع الجغرافي والسياسات (القوة والدقة) التي تحتاجها المركبة.

يمكنك بدلاً من ذلك اختيار طلب NETWORK_PROVIDER واستخدامه بشكل صريح بالإضافة إلى GPS_PROVIDER للمواضع الدقيقة التي تستخدم أذونات android.permission.ACCESS_FINE_LOCATION. في نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يتوفّر FUSED_PROVIDER، الذي لم يكن من الممكن الوصول إليه سابقًا من خلال واجهة برمجة تطبيقات خدمات Google Play إلا كموفِّر موقع جغرافي في LocationManager. يمكنك الاطّلاع على عملية تنفيذ FLP في FusedLocationProvider.java.

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

الموقع الجغرافي للشبكة في السيارات

تحدّد NETWORK_PROVIDER المستخدَمة على هواتف Android (مع "خدمات Google للأجهزة الجوّالة") الموقع الجغرافي استنادًا إلى الأبراج الخلوية القريبة ونقاط وصول Wi-Fi وإشارات البلوتوث (BT). ونتيجةً لذلك، قد يتطلب NETWORK_PROVIDER اتصال بيانات.

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

لذلك، تستخدم الكثير من التطبيقات تنسيق FLP من Play API بدلاً من LocationManager مباشرةً، حيث ينفّذ FLP التنفيذ الذكي تلقائيًا من خلال استخدام موفِّر الموقع الجغرافي الأكثر قدرة على استيفاء معايير/سياسات طلب الموقع الجغرافي (أي التشغيل والدقة).

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

مزوّد موقع الشبكة (NLP)

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

موفِّر الموقع المدمج

يدمج FLP للأجهزة الجوّالة، المعلومات من أدوات الاستشعار الأخرى، بالإضافة إلى الاستخدام الذكي لموفّري الشبكة ونظام تحديد المواقع العالمي (GPS) على النحو المناسب، وذلك بهدف تحسين جودة المواقع الجغرافية بشكل أكبر. من ناحية أخرى، يستفيد التنفيذ الحالي لـ FLP في نظام التشغيل Automotive من الافتراضات المذكورة أعلاه ويستخدم GPS_PROVIDER كمصدر أساسي طوال الوقت. يؤدي إلى تجنب المواضع من GNSS، وإضافة بعض الأخطاء لتكون أكثر دقة عند الحاجة. على سبيل المثال، عندما يتم توفير مواقع تقريبية للعميل.

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

تصميم تطبيقات لاستهداف استخدامات الأجهزة المحمولة والسيارات

بالنسبة إلى التطبيقات التي تستهدف الأجهزة الجوّالة والسيارات التي لا تتطلّب دقة عالية، يمكنك طلب الحصول على android.permission.ACCESS_COARSE_LOCATION فقط والعودة إلى استخدام "FLP" في حال توفُّره. يمكنك بدلاً من ذلك استخدام GPS_PROVIDER مباشرةً باستخدام الأذونات نفسها. يقلّل إطار العمل من دقة موضع GNSS الأساسي للتوافق مع توقعات واجهة برمجة التطبيقات. لمزيد من المعلومات، يمكنك الاطّلاع على الدقة في طلب أذونات تحديد الموقع الجغرافي.

بالإضافة إلى ذلك، يجب أن تذكر هذه التطبيقات صراحةً أنّ ميزة android.hardware.location.network اختيارية في ملف البيان. مثلاً:

<uses-feature android:name="android.hardware.location.network" android:required="false" />

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