إنّ شكل الساعة الصغير الذي يمكن الاطّلاع عليه بسرعة يجعل Wear OS منصة مثالية للتطبيقات التي تسجّل الموقع الجغرافي للمستخدم وتُبلغ عنه وتستجيب له. على سبيل المثال، يمكنك إنشاء تطبيقات تقدّم للمستخدمين معلومات في الوقت الفعلي عن المسافة والسرعة والاتجاه، أو تقدّم إشارات سريعة حول محيط المستخدمين.
لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء تطبيقات التعرّف على الموقع الجغرافي.
تتضمّن بعض الساعات أداة استشعار GPS مدمَجة تسترد بيانات الموقع الجغرافي بدون الحاجة إلى ربطها بهاتف. عند طلب بيانات الموقع الجغرافي في تطبيق على الساعة، يسترد النظام الموقع الجغرافي من الهاتف أو الساعة باستخدام الطريقة الأكثر كفاءة في استهلاك الطاقة. لذلك، حتى بدون مستشعر GPS في الساعة، سيظل بإمكانك الحصول على معلومات الموقع الجغرافي.
للحدّ من تأثير عملية الحصول على بيانات الموقع الجغرافي في عمر البطارية، استخدِم الدالة
setPriority()
مع القيمة PRIORITY_BALANCED_POWER_ACCURACY
.
قد تؤدي إعدادات الأولوية المختلفة إلى تحسين الشرائح بشكل مختلف.
عند الإمكان، يمكنك الحفاظ على طاقة البطارية من خلال طلب الموقع الجغرافي مرة واحدة على الأكثر في الدقيقة باستخدام setInterval()
.
كما هو موضّح في الأقسام اللاحقة، يجب أن يتمكّن تطبيقك من التعامل مع فقدان بيانات الموقع الجغرافي عند انقطاع اتصال ساعة لا تتضمّن مستشعرًا بهاتف.
اختيار الطريقة
هناك طريقتان لتوفير بيانات الموقع الجغرافي لتطبيق Wear OS، وهما استخدام مزوّد الموقع الجغرافي المدمج (FLP) أو خدمات Wear Health Services (WHS). FLP هي واجهة برمجة تطبيقات لخدمات Google Play.
استخدِم FLP في الحالات التالية:
- إذا كنت تريد الحصول على بيانات الموقع الجغرافي في لحظة معيّنة وليس بشكل مستمر، مثل تحديد الموقع الجغرافي لسيارة متوقفة
- إذا كنت تريد الحصول على الموقع الجغرافي بشكل مستمر ولكنّك لا تحتاج إلى سجلّ المواقع الجغرافية
استخدِم WHS في الحالات التالية:
- إذا كنت تريد بيانات من أجهزة استشعار أخرى أو من المحتمل أن تحتاج إلى بيانات من أجهزة استشعار أخرى في المستقبل
- تطبيقك هو تطبيق للتمارين الرياضية يحتاج إلى تتبُّع بيانات الموقع الجغرافي خلال فترة زمنية محدّدة.
استخدام "موفِّر الموقع المدمج"
على ساعة، احصل على بيانات الموقع الجغرافي باستخدام FusedLocationProviderClient
. قد تستخدم خدمة "الموقع الجغرافي من Google" بيانات الموقع الجغرافي من الهاتف. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء عميل لخدمات الموقع الجغرافي.
للحصول على معلومات حول طلب تعديلات على الموقع الجغرافي وتتبُّع الموقع الجغرافي للمستخدم بشكل مستمر، اطّلِع على طلب تعديلات على الموقع الجغرافي.
رصد نظام تحديد المواقع العالمي (GPS) المدمج
إذا خرج مستخدم للركض مع ساعة لا تتضمّن مستشعر GPS مدمجًا وترك الهاتف المقترن بها، لن يتمكّن تطبيق الساعة من الحصول على بيانات الموقع الجغرافي من خلال الجهاز المتصل. عليك رصد هذه الحالة في تطبيقك وتنبيه المستخدم إلى أنّ إمكانات تحديد الموقع الجغرافي غير متاحة.
لتحديد ما إذا كانت الساعة مزوّدة بأداة استشعار GPS مدمجة، استخدِم طريقة
hasSystemFeature()
مع
PackageManager.FEATURE_LOCATION_GPS
. يكتشف الرمز التالي ما إذا كانت الساعة مزوّدة بمستشعر GPS مدمج عند بدء نشاط:
class LocationActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // ... } fun hasGps(): Boolean = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS) }
التعامل مع أحداث قطع الاتصال
إذا لم تتضمّن الساعة جهاز استشعار GPS مدمجًا وفقدت الاتصال بالهاتف، ستفقد الساعة بث بيانات الموقع الجغرافي. إذا كان تطبيقك يتوقّع تدفقًا مستمرًا للبيانات، يجب أن يرصد فقدان الاتصال، ويحذّر المستخدم، ويقلّل من الوظائف بشكل ملائم.
كما هو الحال مع الأجهزة الجوّالة، عند طلب تعديلات على الموقع الجغرافي باستخدام
FusedLocationProviderClient.requestLocationUpdates()
، عليك إدخال إما
LocationCallback
أو PendingIntent
. ويتضمّن كل منهما معلومات الموقع الجغرافي وحالة LocationAvailability
.
عند استخدام الخيار LocationCallback
، استبدِل
onLocationAvailability()
لتلقّي إشعارات بشأن حالة توفّر الموقع الجغرافي.
عند استخدام الخيار PendingIntent
والنتيجة Intent
، استخرِج حالة توفّر الموقع الجغرافي من Intent
باستخدام الطريقة LocationAvailability.extractLocationAvailability(Intent)
.
لم يتم العثور على موقع المتجر
عند انقطاع إشارة نظام تحديد المواقع العالمي (GPS)، يمكنك استرداد آخر موقع جغرافي معروف لساعة المستخدم. تكون استعادة آخر موقع جغرافي معروف مفيدة عندما يتعذّر الحصول على إشارة GPS وعندما تفقد الساعة اتصالها بالهاتف ولا يتوفّر فيها نظام GPS مدمج. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة التعرّف على آخر موقع جغرافي معروف.
تحديد الموقع الجغرافي بشكل متزامن مع المكالمات المجمّعة
إذا كنت تستخدم المكالمات المجمّعة، اتّصِل بالرقم flushLocations()
عندما تعود الشاشة إلى وضع التشغيل أو عند الخروج من وضع الاستراحة، وذلك لإرجاع أي مواقع جغرافية مجمّعة على الفور إلى جميع الأجهزة المسجّلة LocationListeners
وLocationCallbacks
وPending Intents
.