کاربرد GPS در سیستم‌عامل‌های مختلف

در این مقاله به بررسی نحوه پیاده‌سازی قابلیت GPS در سیستم‌عامل‌های Android، iOS، و Microsoft پرداخته می‌شود. همچنین نحوه اتصال به دانگل GPS خارجی را نیز مورد بررسی قرار می‌دهیم.

پیاده‌سازی GPS در Android با Java/Kotlin

ابتدا باید دسترسی به مکان را در فایل AndroidManifest.xml اضافه کنید:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

کد زیر نشان می‌دهد که چگونه می‌توانید از GPS داخلی و همچنین دانگل GPS خارجی استفاده کنید:

import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements LocationListener {
    private LocationManager locationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // گرفتن LocationManager
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        // درخواست به‌روزرسانی مکان
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
    }

    @Override
    public void onLocationChanged(Location location) {
        // دریافت مکان جدید
        double latitude = location.getLatitude();
        double longitude = location.getLongitude();
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {}

    @Override
    public void onProviderEnabled(String provider) {}

    @Override
    public void onProviderDisabled(String provider) {}
}

پیاده‌سازی GPS در iOS با Swift

برای استفاده از GPS در iOS از کلاس CLLocationManager استفاده می‌کنیم:

import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {
    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // درخواست دسترسی به مکان
        locationManager.requestWhenInUseAuthorization()

        // شروع به‌روزرسانی مکان
        locationManager.delegate = self
        locationManager.startUpdatingLocation()
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        if let location = locations.last {
            // دریافت مکان جدید
            let latitude = location.coordinate.latitude
            let longitude = location.coordinate.longitude
        }
    }

    func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
        print("Location error: \\(error.localizedDescription)")
    }
}

پیاده‌سازی GPS در Microsoft Windows با C#

برای استفاده از GPS در Windows از کلاس GeoCoordinateWatcher استفاده می‌کنیم:

using System.Device.Location;

class Program
{
    static void Main()
    {
        GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);

        watcher.PositionChanged += (sender, e) =>
        {
            // دریافت مکان جدید
            double latitude = e.Position.Location.Latitude;
            double longitude = e.Position.Location.Longitude;
        };

        watcher.Start();
    }
}

اتصال به دانگل GPS خارجی

برای اتصال به دانگل GPS خارجی باید بسته به نحوه اتصال آن (USB یا بلوتوث) کتابخانه‌ها و متدهای مرتبط را استفاده کنید. در زیر مثالی از نحوه پیاده‌سازی GPS با استفاده از دانگل خارجی آورده شده است:

در Android

import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity implements LocationListener {
    private LocationManager locationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // گرفتن LocationManager
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        // درخواست به‌روزرسانی مکان از دانگل GPS خارجی
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
    }

    @Override
    public void onLocationChanged(Location location) {
        // دریافت مکان جدید از دانگل GPS خارجی
        double latitude = location.getLatitude();
        double longitude = location.getLongitude();
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {}

    @Override
    public void onProviderEnabled(String provider) {}

    @Override
    public void onProviderDisabled(String provider) {}
}

در iOS

import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {
    let locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // درخواست دسترسی به مکان
        locationManager.requestWhenInUseAuthorization()

        // شروع به‌روزرسانی مکان از دانگل GPS خارجی
        locationManager.delegate = self
        locationManager.startUpdatingLocation()
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        if let location = locations.last {
            // دریافت مکان جدید از دانگل GPS خارجی
            let latitude = location.coordinate.latitude
            let longitude = location.coordinate.longitude
        }
    }

    func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
        print("Location error: \\(error.localizedDescription)")
    }
}

در Microsoft Windows

using System.Device.Location;

class Program
{
    static void Main()
    {
        GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);

        watcher.PositionChanged += (sender, e) =>
        {
            // دریافت مکان جدید از دانگل GPS خارجی
            double latitude = e.Position.Location.Latitude;
            double longitude = e.Position.Location.Longitude;
        };

        watcher.Start();
    }
}

نتیجه‌گیری

استفاده از GPS در سیستم‌عامل‌های مختلف به شما این امکان را می‌دهد که مکان دستگاه‌ها را به‌روزرسانی و مشاهده کنید. با اتصال به دانگل GPS خارجی می‌توانید دقت و قابلیت‌های بیشتری به برنامه‌های خود اضافه کنید. اطمینان حاصل کنید که دسترسی‌ها و مجوزهای لازم را به درستی مدیریت کرده و به خطاها به طور مناسب پاسخ دهید.

  1. ورود به صفحه فارسی