استرجاع إحداثيات خطوط الطول والعرض في Android باستخدام خدمات الموقع
في تطوير Android، غالبًا ما يكون تحديد الموقع الحالي للمستخدم ضروريًا لمختلف التطبيقات. يوفر هذا الدليل إرشادات مفصلة حول كيفية الحصول على إحداثيات خطوط الطول والعرض باستخدام فئة LocationManager.
استخدام LocationManager
للحصول على الموقع الحالي، اتبع الخطوات التالية:
تهيئة مدير الموقع:
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
استرداد آخر موقع معروف:
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
استخراج خط الطول و خط العرض:
double longitude = location.getLongitude(); double latitude = location.getLatitude();
تحديثات الموقع غير المتزامنة
تقوم طريقة getLastKnownLocation() بإرجاع لقطة لآخر موقع معروف، لكنها لا توفر تحديثات في الوقت الفعلي. للحصول على تحديثات منتظمة، يمكنك استخدام طريقة requestLocationUpdates():Private Final LocationListener locationListener = new LocationListener() { الفراغ العام onLocationChanged(موقع الموقع) { خط الطول = location.getLongitude(); latitude = location.getLatitude(); } } lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);private final LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { longitude = location.getLongitude(); latitude = location.getLatitude(); } } lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);أذونات
للوصول إلى موقع GPS الخاص بالجهاز، يتطلب التطبيق إذن ACCESS_FINE_LOCATION في البيان :
private final LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { longitude = location.getLongitude(); latitude = location.getLatitude(); } } lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 10, locationListener);اختيار الموفر
لمزيد من الدقة، استخدم طريقة getBestProvider() لتحديد أفضل موفر موقع متاح :
String Provider = lm.getBestProvider(new Criteria(), true); موقع الموقع = lm.getLastKnownLocation(provider);
String provider = lm.getBestProvider(new Criteria(), true); Location location = lm.getLastKnownLocation(provider);
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3