للحفاظ على خصوصية المستخدمين، ننصح مطوّري التطبيقات بعدم طلب سوى أذونات تحديد الموقع الجغرافي التقريبي. تستخدم التطبيقات التي تحتاج إلى تحديد الموقع الجغرافي التقريبي عادةً الموقع الجغرافي للشبكة (FLP) لأنّه سريع ويستهلك طاقة أقل.
مقارنةً بالأجهزة الجوّالة المستندة إلى Android، قد يكون تحديد الموقع الجغرافي على الشبكة في تطبيقات السيارات أكثر صعوبة. يمكنك استخدام واجهتَي برمجة تطبيقات Android:
تتطلّب LocationManager API أو LM منك تحديد موفّر الموقع الجغرافي المفضّل بشكل صريح.
توفّر واجهة برمجة التطبيقات "خدمات Google Play" طريقة أبسط للتعامل مع الموقع الجغرافي من خلال تقديم "موفّر الموقع المدمج" (FLP).
تستخدم العديد من تطبيقات السيارات FLP من واجهة برمجة التطبيقات "خدمات Google Play" (GPS) بدلاً من LM. تختار خدمة "موفر الموقع الجغرافي" (FLP) أفضل موفر للموقع الجغرافي استنادًا إلى معايير وسياسات طلب الموقع الجغرافي (الطاقة والدقة) التي تحتاجها المركبة.
يمكنك بدلاً من ذلك اختيار طلب استخدام NETWORK_PROVIDER
بشكل صريح في LM، بالإضافة إلى GPS_PROVIDER
للمواقع الجغرافية الدقيقة، والذي يستخدم أذونات android.permission.ACCESS_FINE_LOCATION
. في الإصدار 31 من واجهة برمجة التطبيقات، أصبح بإمكان "خدمة الموقع الجغرافي من Google" استخدام FUSED_PROVIDER
،
الذي كان متاحًا في السابق من خلال واجهة برمجة التطبيقات لنظام تحديد المواقع العالمي (GPS) فقط، كموفّر موقع جغرافي. يمكنك الاطّلاع على تنفيذ أبسط لميزة "حماية الخصوصية من خلال التعلّم الاتحادي" في FusedLocationProvider.java
.
مع أنّه يمكن استخدام GPS_PROVIDER
مع حقوق الأذونات التقريبية فقط، إلا أنّ إطار العمل يقلّل الدقة بشكل مصطنع لتتوافق مع التوقعات، ولا يكون ذلك منطقيًا للمطوّرين الذين يستهدفون هواتف Android لأنّ التوفّر العام يكون ضعيفًا وغالبًا ما يكون الحصول على موقع جغرافي تقريبي أبطأ.
موقع الشبكة في السيارات
لقد تغيّرت طريقة عمل NETWORK_PROVIDER
على هواتف Android (التي تتضمّن "خدمات Google للأجهزة الجوّالة") من تحديد الموقع الجغرافي استنادًا إلى أبراج الاتصالات المجاورة فقط إلى استخدام نقاط وصول Wi-Fi أو حتى إشارات البلوتوث (BT). قد يتطلّب استخدام
NETWORK_PROVIDER
الاتصال بشبكة بيانات.
تختلف قيود الأجهزة بالنسبة إلى تطبيقات السيارات. بما أنّ نظام GNSS يكون مفعّلاً عادةً، لا يتم فرض أي عقوبات بسبب زيادة استهلاك الطاقة والبطارية. نتيجةً لذلك، لا تتأثر مدة تشغيل نظام المعلومات والترفيه داخل السيارة. نسعى إلى تقليل البيانات التي يتم تبادلها مع خوادمنا.
لذلك، تستخدم العديد من التطبيقات "موفِّر الموقع المدمج" من واجهة برمجة تطبيقات Play بدلاً من "خدمة تحديد الموقع" مباشرةً، لأنّ "موفِّر الموقع المدمج" ينفّذ الإجراء الذكي تلقائيًا من خلال استخدام موفِّر الموقع الأنسب لتلبية معايير/سياسات طلب الموقع الجغرافي (أي الطاقة والدقة) في الخلفية.
على عكس الأجهزة الجوّالة، نادرًا ما تنتقل المركبات من مكان إلى آخر. يتم تحديد موضع المركبة في الخلفية في معظم الأوقات.
مقدّم خدمة الموقع الجغرافي للشبكة
لا تتضمّن معظم المركبات واجهات برمجة التطبيقات المطلوبة الخاصة بالهاتف للحصول على المعلومات اللازمة بشأن معرّف الخلية (وقوة الإشارة). نتيجةً لذلك، وبما أنّنا نحدّ من استخدام البيانات، لا يتم توفير أي تنفيذ وظيفي إضافي لمعالجة اللغة الطبيعية.
موفِّر الموقع المدمج
بالإضافة إلى الاستخدام الذكي لمقدّمي خدمات الشبكة ونظام تحديد المواقع العالمي (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" />
يضمن هذا الأسلوب الحد الأقصى من التوافق مع الأجهزة في مختلف القطاعات، وبالتالي، الحد الأقصى من توفّر التطبيق بدون أي اختلافات في الرموز البرمجية للحصول على المواضع عند الحاجة.