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

Android पर उपयोगकर्ता का वर्तमान स्थान प्राप्त करने का सबसे सरल तरीका


यह उदाहरण दर्शाता है कि मैं एंड्रॉइड पर उपयोगकर्ता का वर्तमान स्थान सबसे सरल तरीके से कैसे प्राप्त करूं।

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

 

चरण 3 - ग्रैडल में निम्नलिखित निर्भरता जोड़ें

कार्यान्वयन 'com.google.android.gms:play-services-location:17.0.0'

चरण 4 - निम्न कोड को src/MainActivity.java

में जोड़ें <पूर्व>आयात androidx.annotation.NonNull;import androidx.appcompat.app.AppCompatActivity;import androidx.core.app.ActivityCompat;import androidx.core.content.ContextCompat;import android.Manifest;import android.content.Intent;import android.content.pm.PackageManager;import android.location.Geocoder;import android.location.Location;import android.os.Bundle;import android.os.Handler;import android.os.ResultReceiver;import android.util.Log; आयात android.widget.TextView;import android.widget.Toast;import com.google.android.gms.location.FusedLocationProviderClient;import com.google.android.gms.location.LocationCallback;import com.google.android.gms.location .LocationRequest;import com.google.android.gms.location.LocationResult;import com.google.android.gms.location.LocationServices;सार्वजनिक वर्ग MainActivity AppCompatActivity को बढ़ाता है { Private FusedLocationProviderClient fuseLocationClient; निजी स्थिर अंतिम int LOCATION_PERMISSION_REQUEST_CODE =2; निजी स्थान पताResultReceiver पताResultReceiver; निजी टेक्स्टव्यू करेंटऐडटीवी; निजी स्थान वर्तमान स्थान; निजी स्थानकॉलबैक स्थानकॉलबैक; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); addressResultReceiver =नया स्थानAddressResultReceiver (नया हैंडलर ()); currentAddTv =findViewById (R.id.textView); fuseLocationClient =LocationServices.getFusedLocationProviderClient (यह); स्थान कॉलबैक =नया स्थान कॉलबैक () {@ स्थान पर सार्वजनिक शून्य को ओवरराइड करें (स्थान परिणाम स्थान परिणाम) {वर्तमान स्थान =स्थान परिणाम। प्राप्त स्थान ()। प्राप्त करें (0); पता प्राप्त करें (); } }; startLocationUpdates (); } @SuppressWarnings("MissingPermission") निजी शून्य startLocationUpdates() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) !=PackageManager.PERMISSION_GRANTED) { activityCompat.requestPermissions(यह, नई स्ट्रिंग [] {Manifest.permission] ACCESS_FINE_LOCATION}, LOCATION_PERMISSION_REQUEST_CODE); } और { लोकेशन रिक्वेस्ट लोकेशन रिक्वेस्ट =नया लोकेशन रिक्वेस्ट (); locationRequest.setInterval(2000); locationRequest.setFastestInterval(1000); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); fuseLocationClient.requestLocationUpdates(locationRequest, locationCallback, null); } } @SuppressWarnings("MissingPermission") निजी शून्य getAddress() {if (!Geocoder.isPresent ()) { Toast.makeText(MainActivity.this, "वर्तमान पता नहीं मिल सकता," Toast.LENGTH_SHORT).show( ); वापसी; } इरादा इरादा =नया इरादा (यह, GetAddressIntentService.class); इंटेंट.पुटएक्स्ट्रा ("add_receiver", पताResultReceiver); इंटेंट.पुटएक्स्ट्रा ("ऐड_लोकेशन", करंट लोकेशन); स्टार्ट सर्विस (इरादा); } @Override सार्वजनिक शून्य onRequestPermissionsResult(int requestCode, @NonNull String[] अनुमतियाँ, @NonNullint[] GrantResults) { अगर (requestCode ==LOCATION_PERMISSION_REQUEST_CODE) { if (grantResults.length> 0 &&GrantResults[0] ==PackageManager.PERMISSION_GRANTED)। {स्टार्टलोकेशनअपडेट्स (); } और { Toast.makeText (यह, "स्थान की अनुमति नहीं दी गई," + "यदि आप सुविधा चाहते हैं तो ऐप को पुनरारंभ करें", Toast.LENGTH_SHORT)। शो (); } }}निजी वर्ग स्थानAddressResultReceiver, ResultReceiver का विस्तार करता है { LocationAddressResultReceiver (हैंडलर हैंडलर) { सुपर (हैंडलर); } @Override संरक्षित शून्य onReceiveResult(int resultCode, Bundle resultData) { if (resultCode ==0) { Log.d("Address", "Location null retrying"); पता प्राप्त करें (); } अगर (resultCode ==1) { Toast.makeText(MainActivity.this, "पता नहीं मिला,", Toast.LENGTH_SHORT)। शो (); } स्ट्रिंग करेंटऐड =resultData.getString("address_result"); शो परिणाम (वर्तमान जोड़ें); } } निजी शून्य शो परिणाम (स्ट्रिंग वर्तमान जोड़ें) {currentAddTv.setText (currentAdd); } @Override संरक्षित शून्य onResume() {super.onResume(); startLocationUpdates (); } @Override संरक्षित शून्य पर रोकें () {super.onPause (); fuseLocationClient.removeLocationUpdates (स्थान कॉलबैक); }}

चरण 5 - एक नया जावा क्लास GetaddressIntentService.java बनाएं और निम्नलिखित कोड जोड़ें

<पूर्व>पैकेज app.com.sample;import android.app.IntentService;import android.content.Intent;import android.location.Address;import android.location.Geocoder;import android.location.Location;import android.os. बंडल; आयात android.os.ResultReceiver; आयात android.util.Log; आयात java.util.List; आयात java.util.Locale; आयात java.util.Objects; आयात androidx.annotation.Nullable; सार्वजनिक वर्ग GetAddressIntentService IntentService का विस्तार करता है { निजी स्थिर अंतिम स्ट्रिंग पहचानकर्ता ="GetAddressIntentService"; निजी परिणाम रिसीवर पताResultReceiver; सार्वजनिक GetAddressIntentService () {सुपर (पहचानकर्ता); } @ ओवरराइड संरक्षित शून्य onHandleIntent(@Nullable Intent इरादा) { स्ट्रिंग संदेश; addressResultReceiver =Objects.requireNonNull (इरादे)। getParcelableExtra ("add_receiver"); अगर (addressResultReceiver ==null) { Log.e ("GetAddressIntentService", "कोई रिसीवर नहीं, अनुरोध को आगे संसाधित नहीं कर रहा है"); वापसी; } स्थान स्थान =आशय। getParcelableExtra ("add_location"); अगर (स्थान ==शून्य) {msg ="कोई स्थान नहीं, स्थान के बिना आगे नहीं जा सकता"; SendResultsToReceiver (0, संदेश); वापसी; } जियोकोडर जियोकोडर =नया जियोकोडर (यह, लोकेल.गेटडिफॉल्ट ()); सूची <पता> पते =शून्य; कोशिश करें {पते =geocoder.getFromLocation (location.getLatitude (), location.getLongitude (), 1); } पकड़ें (अपवाद ioException) { Log.e ("", "स्थान के लिए पता प्राप्त करने में त्रुटि"); } अगर (पते ==शून्य || पते। आकार () ==0) { संदेश ="स्थान के लिए कोई पता नहीं मिला"; SendResultsToReceiver(1, msg); } और { पता पता =पते। प्राप्त करें (0); स्ट्रिंग पता विवरण =पता। getFeatureName () + "\ n" + पता। गेटथोरफेयर () + "\ n" + "इलाका:" + पता। getLocality () + "\ n" + "काउंटी:" + पता। getSubAdminArea ( ) + "\n" + "राज्य:" + पता.getAdminArea() + "\n" + "देश:" + पता.getCountryName() + "\n" + "डाक कोड:" + पता.getPostalCode() + "\ n"; SendResultsToReceiver(2, पता विवरण); }}निजी शून्य भेजेंResultsToReceiver(int resultCode, स्ट्रिंग संदेश) {बंडल बंडल =नया बंडल (); बंडल.पुटस्ट्रिंग ("address_result", संदेश); पताResultReceiver.send (परिणाम कोड, बंडल); }}

चरण 6 - निम्नलिखित कोड को androidManifest.xml में जोड़ें

 <एप्लिकेशन एंड्रॉइड:अनुमति बैकअप ="सच" एंड्रॉइड:आइकन ="@ मिपमैप / आईसी_लॉन्चर" एंड्रॉइड:लेबल ="@ स्ट्रिंग / ऐप_नाम" एंड्रॉइड:राउंडआईकॉन ="@ मिपमैप / आईसी_लॉन्चर_राउंड" एंड्रॉइड:सपोर्ट आरटीएल ="सच" एंड्रॉइड :theme="@style/AppTheme"> <गतिविधि android:name=".MainActivity"> <इरादे-फ़िल्टर> <कार्रवाई android:name="android.intent.action.MAIN" /> <श्रेणी android:name=" android.intent.category.LAUNCHER" />   <उपयोग-अनुमति android:name="android.permission.INTERNET" />

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

Android पर उपयोगकर्ता का वर्तमान स्थान प्राप्त करने का सबसे सरल तरीका


  1. एंड्रॉइड में वर्तमान स्थान अक्षांश और देशांतर कैसे प्राप्त करें?

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में वर्तमान स्थान अक्षांश और देशांतर कैसे प्राप्त करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

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

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड में डिवाइस का IMEI/ESN नंबर प्रोग्रामेटिक रूप से कैसे प्राप्त करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में

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

    यह उदाहरण दर्शाता है कि मैं एंड्रॉइड डिवाइस का प्राथमिक ई-मेल पता कैसे प्राप्त करूं। चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें। चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें। चरण 3 -