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

एंड्रॉइड पर प्रोग्रामेटिकली वर्तमान GPS लोकेशन कैसे प्राप्त करें?

एंड्रॉइड में FusedLocationProviderClient का उपयोग करके GPS लोकेशन प्राप्त करना

यह उदाहरण दर्शाता है कि एंड्रॉइड ऐप में प्रोग्रामेटिकली वर्तमान GPS लोकेशन कैसे प्राप्त करें। हम Google Play Services के FusedLocationProviderClient का उपयोग करेंगे, जो बैटरी-कुशल तरीके से सटीक लोकेशन प्रदान करता है।

आवश्यक अनुमतियाँ

AndroidManifest.xml में निम्नलिखित अनुमति जोड़ें:

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

चरण 1: लेआउट फ़ाइल बनाएं (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <TextView
        android:id="@+id/location"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="वर्तमान GPS लोकेशन"
        android:textSize="24sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/getLocation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="लोकेशन प्राप्त करें" />
</LinearLayout>

चरण 2: MainActivity.java में कोड जोड़ें

import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Location;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.tasks.OnSuccessListener;

public class MainActivity extends AppCompatActivity {
    private FusedLocationProviderClient fusedLocationClient;
    private static final int LOCATION_PERMISSION_REQUEST_CODE = 1001;

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

        fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
        Button getLocationBtn = findViewById(R.id.getLocation);
        final TextView locationTextView = findViewById(R.id.location);

        getLocationBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (ActivityCompat.checkSelfPermission(MainActivity.this, 
                        Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                    ActivityCompat.requestPermissions(MainActivity.this,
                            new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                            LOCATION_PERMISSION_REQUEST_CODE);
                    return;
                }
                getLastKnownLocation(locationTextView);
            }
        });
    }

    private void getLastKnownLocation(final TextView textView) {
        fusedLocationClient.getLastLocation()
                .addOnSuccessListener(this, new OnSuccessListener() {
                    @Override
                    public void onSuccess(Location location) {
                        if (location != null) {
                            String locInfo = String.format("अक्षांश: %.4f, देशांतर: %.4f\nसटीकता: %.1f मीटर",
                                    location.getLatitude(), location.getLongitude(), location.getAccuracy());
                            textView.setText(locInfo);
                        } else {
                            textView.setText("लोकेशन उपलब्ध नहीं है। GPS चालू करें।");
                        }
                    }
                });
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode == LOCATION_PERMISSION_REQUEST_CODE) {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                getLastKnownLocation(findViewById(R.id.location));
            }
        }
    }
}

चरण 3: build.gradle में निर्भरता जोड़ें

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

महत्वपूर्ण नोट्स

  • एंड्रॉइड 10 (API 29) और उससे ऊपर के लिए, बैकग्राउंड लोकेशन के लिए ACCESS_BACKGROUND_LOCATION की आवश्यकता होती है
  • हमेशा लोकेशन अनुरोध करने से पहले रनटाइम अनुमति जांचें
  • getLastLocation() null वापस कर सकता है यदि हाल ही में कोई लोकेशन उपलब्ध नहीं है
  • रियल-टाइम अपडेट के लिए requestLocationUpdates() का उपयोग करें

आउटपुट

ऐप चलाने पर, "लोकेशन प्राप्त करें" बटन पर क्लिक करने से वर्तमान GPS निर्देशांक प्रदर्शित होंगे।

  1. Android में GPS प्रोग्रामेटिकली कैसे इनेबल/डिसेबल करें? Android में GPS प्रोग्रामेटिकली कैसे इनेबल/डिसेबल करें?

    यह उदाहरण दर्शाता है कि Android में GPS लोकेशन सर्विस की स्थिति कैसे जांची जाए और यूजर को सेटिंग्स स्क्रीन पर भेजकर उसे इनेबल/डिसेबल करने के लिए कैसे प्रेरित किया जाए। ⚠️ महत्वपूर्ण: सुरक्षा कारणों से Android ऐप्स को सीधे GPS ऑन/ऑफ करने की अनुमति नहीं देता (Android 2.3+ से)। ऐप केवल यूजर को लोकेशन

  1. Android में वर्तमान स्थान की अक्षांश और देशांतर कैसे प्राप्त करें? Android में वर्तमान स्थान की अक्षांश और देशांतर कैसे प्राप्त करें?

    Android में GPS से वर्तमान लोकेशन (अक्षांश/देशांतर) प्राप्त करने का गाइड यह ट्यूटोरियल दिखाता है कि कैसे LocationManager, रनटाइम परमिशन और GPS प्रोवाइडर का उपयोग करके डिवाइस की वर्तमान लोकेशन प्राप्त की जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।

  1. Android में GPS को प्रोग्रामेटिकली कैसे सक्षम/अक्षम करें? Android में GPS को प्रोग्रामेटिकली कैसे सक्षम/अक्षम करें?

    Android में GPS स्थिति जांचने और सेटिंग्स खोलने का गाइड महत्वपूर्ण: सुरक्षा कारणों से Android ऐप्स को GPS सीधे सक्षम/अक्षम करने की अनुमति नहीं देता (Android 2.3+ से)। यह ट्यूटोरियल GPS स्थिति जांचने और उपयोगकर्ता को लोकेशन सेटिंग्स स्क्रीन पर ले जाने का सही तरीका दिखाता है। चरण 1: नया प्रोजेक्ट बना