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

Android में डिवाइस लोकेशन कैसे प्राप्त करें?

Android में TelephonyManager.getCellLocation() का उपयोग करके सेल लोकेशन प्राप्त करें

यह उदाहरण दर्शाता है कि Android में सेल टावर लोकेशन जानकारी कैसे प्राप्त की जाती है। ध्यान दें: यह GPS लोकेशन नहीं है, बल्कि सेल आईडी आधारित अनुमानित लोकेशन है। आधुनिक ऐप्स के लिए FusedLocationProviderClient का उपयोग करने की सलाह दी जाती है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2: लेआउट XML में कोड जोड़ें

res/layout/activity_main.xml में निम्न कोड जोड़ें:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android" 
    xmlns:app="https://schemas.android.com/apk/res-auto" 
    xmlns:tools="https://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:gravity="center" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" 
    android:orientation="vertical"> 
    <TextView 
        android:id="@+id/text" 
        android:textSize="30sp" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" /> 
</LinearLayout>

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

java/MainActivity.java में निम्न कोड जोड़ें:

package com.example.myapplication; 

import android.Manifest; 
import android.content.Context; 
import android.content.pm.PackageManager; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.annotation.NonNull; 
import android.support.annotation.RequiresApi; 
import android.support.v4.app.ActivityCompat; 
import android.support.v7.app.AppCompatActivity; 
import android.telephony.TelephonyManager; 
import android.widget.TextView; 
import static android.Manifest.permission.ACCESS_COARSE_LOCATION; 
import static android.Manifest.permission.READ_PHONE_NUMBERS; 
import static android.Manifest.permission.READ_PHONE_STATE; 
import static android.Manifest.permission.READ_SMS; 

public class MainActivity extends AppCompatActivity { 
    private static final int PERMISSION_REQUEST_CODE = 100; 
    TextView textView; 
    TelephonyManager telephonyManager; 
    
    @RequiresApi(api = Build.VERSION_CODES.P) 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        textView = findViewById(R.id.text); 
        telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); 
        
        if (ActivityCompat.checkSelfPermission(this, READ_SMS) != PackageManager.PERMISSION_GRANTED && 
            ActivityCompat.checkSelfPermission(this, READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED && 
            ActivityCompat.checkSelfPermission(this, ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && 
            ActivityCompat.checkSelfPermission(this, READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { 
            ActivityCompat.requestPermissions(this, new String[]{READ_SMS, READ_PHONE_NUMBERS, READ_PHONE_STATE, ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_CODE); 
        } else { 
            textView.setText("" + telephonyManager.getCellLocation()); 
        } 
    } 
    
    @RequiresApi(api = Build.VERSION_CODES.P) 
    @Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
        super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
        switch (requestCode) { 
            case PERMISSION_REQUEST_CODE: 
                if (ActivityCompat.checkSelfPermission(this, READ_SMS) != PackageManager.PERMISSION_GRANTED && 
                    ActivityCompat.checkSelfPermission(this, READ_PHONE_NUMBERS) != PackageManager.PERMISSION_GRANTED && 
                    ActivityCompat.checkSelfPermission(this, ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED && 
                    ActivityCompat.checkSelfPermission(this, READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { 
                    return; 
                } else { 
                    textView.setText("" + telephonyManager.getCellLocation()); 
                } 
        } 
    } 
}

चरण 4: AndroidManifest.xml में परमिशन जोड़ें

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.myapplication"> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <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"> 
        <activity android:name=".MainActivity"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
    </application> 
</manifest>

ऐप चलाएं

अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में प्रोजेक्ट की एक्टिविटी फाइल खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और डिवाइस पर डिफ़ॉल्ट स्क्रीन देखें।

Android में डिवाइस लोकेशन कैसे प्राप्त करें?

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

getCellLocation() डिप्रिकेटेड है और Android 10+ में प्रतिबंधित है। सटीक लोकेशन के लिए Google Play Services के FusedLocationProviderClient का उपयोग करें जो GPS, Wi-Fi, और सेल टावर डेटा को मिलाकर बेहतर परिणाम देता है।

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

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

  1. एंड्रॉइड में प्रोग्रामेटिक रूप से डिवाइस का IMEI/ESN नंबर कैसे प्राप्त करें? एंड्रॉइड में प्रोग्रामेटिक रूप से डिवाइस का IMEI/ESN नंबर कैसे प्राप्त करें?

    READ_PHONE_STATE परमिशन के साथ IMEI नंबर प्राप्त करें यह उदाहरण दर्शाता है कि TelephonyManager का उपयोग करके डिवाइस का IMEI नंबर कैसे प्राप्त करें और रनटाइम परमिशन कैसे संभालें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: लेआउट में बटन और TextView res/layout/acti

  1. Android डिवाइस का प्राइमरी ईमेल एड्रेस कैसे प्राप्त करें? Android डिवाइस का प्राइमरी ईमेल एड्रेस कैसे प्राप्त करें?

    परिचय यह ट्यूटोरियल दिखाता है कि Android डिवाइस पर कॉन्फ़िगर किए गए अकाउंट्स में से प्राइमरी ईमेल एड्रेस कैसे प्राप्त करें। हम AccountManager और GET_ACCOUNTS परमिशन का उपयोग करेंगे। ⚠️ महत्वपूर्ण चेतावनी नोट: यह प्रोग्राम केवल रूटेड डिवाइस पर ही काम करेगा। आधुनिक Android वर्जन (Android 6.0+) में `G