Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में Location API से वर्तमान लोकेशन कैसे ट्रैक करें?

परिचय

यह ट्यूटोरियल दिखाता है कि Google Maps SDK और Location API का उपयोग करके Android ऐप में वर्तमान लोकेशन कैसे दिखाएं। हम मैप पर मार्कर लगाएंगे और कैमरा को उपयोगकर्ता की लोकेशन पर केंद्रित करेंगे।

आवश्यक चरण

चरण 1: नया प्रोजेक्ट बनाएं और डिपेंडेंसी जोड़ें

Android Studio में File → New Project → Google Maps Activity टेम्पलेट चुनें (आसान सेटअप के लिए)। या मैन्युअली build.gradle (Module: app) में जोड़ें:

dependencies {
    implementation 'com.google.android.gms:play-services-maps:18.2.0'
    implementation 'com.google.android.gms:play-services-location:21.0.1'
}

चरण 2: लेआउट फ़ाइल (res/layout/activity_maps.xml)

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MapsActivity" />

चरण 3: मैप्स एक्टिविटी (src/MapsActivity.java)

import androidx.fragment.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
    GoogleMap mMap;

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

        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;

        // हार्डकोडेड लोकेशन (चेन्नई, भारत) - वास्तविक ऐप में GPS से प्राप्त करें
        LatLng myCurrentLocation = new LatLng(13.0827, 80.2707);

        // मार्कर जोड़ें
        mMap.addMarker(new MarkerOptions()
                .position(myCurrentLocation)
                .title("यह मेरी वर्तमान लोकेशन है"));

        // कैमरा मूव करें
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myCurrentLocation, 15f));
    }
}

चरण 4: API Key कॉन्फ़िगर करें (res/values/strings.xml)

<resources>
    <string name="app_name">Location Demo</string>
    <string name="title_activity_maps">Map</string>
    <string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR_API_KEY_HERE</string>
</resources>

महत्वपूर्ण: YOUR_API_KEY_HERE को अपने Google Cloud Console से प्राप्त Maps SDK API Key से बदलें।

चरण 5: मैनिफेस्ट फ़ाइल (AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".MapsActivity"
            android:label="@string/title_activity_maps">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

ऐप चलाएं

डिवाइस कनेक्ट करें, Run क्लिक करें। मैप खुलेगा और चेन्नई पर मार्कर के साथ केंद्रित होगा।

Android में Location API से वर्तमान लोकेशन कैसे ट्रैक करें?

वास्तविक GPS लोकेशन प्राप्त करें (महत्वपूर्ण)

उपरोक्त कोड में लोकेशन हार्डकोडेड है। वास्तविक ऐप में FusedLocationProviderClient उपयोग करें:

import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.tasks.OnSuccessListener;

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
    private FusedLocationProviderClient fusedLocationClient;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
        // ... मैप सेटअप
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        getCurrentLocation();
    }

    private void getCurrentLocation() {
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1001);
            return;
        }

        fusedLocationClient.getLastLocation()
                .addOnSuccessListener(this, new OnSuccessListener<Location>() {
                    @Override
                    public void onSuccess(Location location) {
                        if (location != null) {
                            LatLng current = new LatLng(location.getLatitude(), location.getLongitude());
                            mMap.addMarker(new MarkerOptions().position(current).title("मेरी लोकेशन"));
                            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(current, 15f));
                        }
                    }
                });
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        if (requestCode == 1001 && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            getCurrentLocation();
        }
    }
}

महत्वपूर्ण बिंदु

  • API Key - Google Cloud Console → APIs & Services → Credentials → Create API Key → Maps SDK for Android इनेबल करें।
  • परमिशन - `ACCESS_FINE_LOCATION` (सटीक) और `ACCESS_COARSE_LOCATION` (अनुमानित)।
  • रनटाइम परमिशन - Android 6.0+ में उपयोगकर्ता से रनटाइम पर पूछें।
  • FusedLocationProviderClient - बैटरी-कुशल, उच्च-सटीक लोकेशन के लिए अनुशंसित।
  • एमुलेटर टेस्टिंग - Extended Controls → Location से मॉक लोकेशन सेट करें।
  1. अपने Android फोन को वेबकैम के रूप में कैसे उपयोग करें अपने Android फोन को वेबकैम के रूप में कैसे उपयोग करें

    आपके Android मोबाइल का उपयोग विभिन्न तरीकों से किया जा सकता है; उनमें से एक यह है कि आप इसे अपने डेस्कटॉप एप्लिकेशन के लिए वेबकैम के रूप में उपयोग कर सकते हैं। एक समर्पित कैमरा खरीदना स्पष्ट रूप से आसान है, लेकिन यदि आप एक ब्रांड नया वेबकैम नहीं खरीदना चाहते हैं, या अपने पुराने फोन के लिए बेचने के ब

  1.  Find My  का उपयोग करके अपने iPhone को सुरक्षित और ट्रैक कैसे करें "Find My" का उपयोग करके अपने iPhone को सुरक्षित और ट्रैक कैसे करें

    कई iPhone मालिकों के लिए, सबसे बुरा सपना अपने डिवाइस को खोना है। जब ऐसा होता है, तो आपकी सभी फ़ोटो, कॉन्टैक्ट्स, ऐप्स और डेटा इसके साथ खो जाते हैं। सौभाग्य से, Apple के अपग्रेडेड Find My ऐप में नए फीचर्स हैं जो आपको अपना फ़ोन ढूंढने में मदद करते हैं। iOS 15 में Find My iPhone कैसे सेट अप करें यदि आ

  1. अपने एंड्रॉइड की लोकेशन कैसे फेक करें अपने एंड्रॉइड की लोकेशन कैसे फेक करें

    एंड्रॉइड डेवलपर्स जिनके ऐप्स में कुछ स्थान-आधारित कार्यक्षमता है, उन्हें यह सुनिश्चित करने के लिए अपने फोन के स्थान को फेक या स्पूफ करने की आवश्यकता हो सकती है कि उनकी सुविधाएं जिस तरह से काम करनी चाहिए उस तरह काम करें। गैर-डेवलपर भी इस फ़ंक्शन को उतनी ही आसानी से एक्सेस कर सकते हैं (एंड्रॉइड पर, व