سؤال

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

لذلك ، هل من الجيد أن قمنا بتعيين مزود الموقع على أنه network_provider فقط حتى لا يهم ما إذا كان GPS_Provider قد تم تمكينه أم لا.

واسمحوا لي أن أعرف ما هو النهج الصحيح.

يعتبر

سونيل

هل كانت مفيدة؟

المحلول

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

ولكن إذا كنت تريد حقًا موقعًا دقيقًا قدر الإمكان ، فلماذا لا تستمع إلى كلا مقدمي الخدمات؟ يمكنك استخدام getLastKnownLocation() طريقة للموقع الأولي. ثم يمكنك استخدام NETWORK_PROVIDER موقعك. ثم ، بمجرد حصولك على إصلاح من GPS_PROVIDER, ، يمكنك تجاهل أو إزالة مستمع الشبكة.

نصائح أخرى

يعطي GPS دقة أفضل من مزود الشبكة.

يتم مزود الشبكة باستخدام مثلث أبراج الخلايا و wifi.

لذلك ، إذا كنت بحاجة على الفور ، ابدأ بـ "آخر موقع معروف" ، ثم قم بالتبديل إلى الشبكة ، بمجرد الحصول على الإصلاح من GPS ، ابدأ في استخدامه.

التحيات ، فيناي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top