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

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

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

  • تتطلّب واجهة برمجة التطبيقات LocationManager API منك تحديد مقدّم خدمات الموقع الجغرافي المفضّل صراحةً.

  • توفّر Google Play Services API طريقة أكثر بساطة لمعالجة الموقع الجغرافي من خلال تقديم "موفِّر الموقع المدمج" (FLP).

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

يمكنك بدلاً من ذلك اختيار طلب NETWORK_PROVIDER واستخدامه صراحةً في "المعالجة المحدودة للبيانات"، بالإضافة إلى GPS_PROVIDER للمواضع الدقيقة، والتي تستخدم سوى android.permission.ACCESS_FINE_LOCATION أذونات. في الإصدار 31 من واجهة برمجة التطبيقات، أصبح FUSED_PROVIDER، الذي كان لا يمكن الوصول إليه سابقًا إلا من خلال واجهة برمجة التطبيقات GPS API، متاحًا الآن كموفِّر موقع جغرافي لخدمة "البحث المحلي". يمكنك الاطّلاع على مثال أبسط لتطبيق FLP في FusedLocationProvider.java.

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

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

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

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

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

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

مقدّم خدمة الموقع الجغرافي للشبكة

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

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

بالإضافة إلى استخدام موفِّري الشبكة ونظام تحديد المواقع العالمي (GPS) بشكل ذكي عند الاقتضاء، تدمج تقنية FLP للأجهزة الجوّالة معلومات من أجهزة استشعار أخرى لتحسين جودة المواقع الجغرافية بشكلٍ أكبر. من ناحية أخرى، يستفيد التنفيذ الحالي لفئة 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" />

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