17

मैं वर्तमान स्थान अर्थात् अक्षांश और देशांतर प्राप्त करने के लिए निम्न कोड का उपयोग कर रहा हूं, लेकिन मुझे वर्तमान स्थान (अक्षांश और देशांतर) नहीं मिल रहा है।एंड्रॉइड - वर्तमान स्थान (अक्षांश और देशांतर) कैसे प्राप्त करें?

कोई भी जानता है क्यों?

package com.ram.currentlocation; 

import android.app.Activity;  
import android.content.Context; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.widget.Toast; 

public class Location_Gps extends Activity 
{ 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     /* Use the LocationManager class to obtain GPS locations */ 
     LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 

     LocationListener mlocListener = new MyLocationListener(); 
     mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 
    } 

    /* Class My Location Listener */ 
    public class MyLocationListener implements LocationListener 
    { 

     @Override 
     public void onLocationChanged(Location loc) 
     { 

     loc.getLatitude(); 
     loc.getLongitude(); 

     String Text = "My current location is: " + 
     "Latitud = " + loc.getLatitude() + 
     "Longitud = " + loc.getLongitude(); 

     Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onProviderDisabled(String provider) 
     { 
     Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show(); 
     } 

     @Override 
     public void onProviderEnabled(String provider) 
     { 
     Toast.makeText(getApplicationContext(), "Gps Enabled", Toast.LENGTH_SHORT).show(); 
     } 

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

     } 
    } 
} 

पी.एस .: मैं manifest फ़ाइल में निम्न अनुमतियों का उपयोग कर रहा:

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

पहले उल्लेख करें कि आप किस अनुमति का उपयोग कर रहे हैं और आप इसे डिवाइस या एमुलेटर में कहां देख रहे हैं ...? –

+0

क्या आपके पास मेनिफेस्ट में 'ACCESS_FINE_LOCATION' है? –

+0

मैं अपने मैनिफेस्ट में दो अनुमतियों का उपयोग कर रहा हूं <उपयोग-अनुमति एंड्रॉइड: name = "android.permission.ACCESS_FINE_LOCATION" /> <उपयोग-अनुमति एंड्रॉइड: name = "android.permission.ACCESS_CORSE_LOCATION" /> मुझे वर्तमान स्थान अक्षांश मिल रहा है 0.0 और देशांतर 0.0 – Jeeva

उत्तर

25

आपको अपनी मेनिफेस्ट फ़ाइल में कोई गलती है। सही एक है:

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

मेरे पास दोनों हैं लेकिन मुझे शून्य अक्षांश और देशांतर –

3

अपने Android प्रकट में आप अनुमति सेट किया?

android.permission.ACCESS_FINE_LOCATION 

जहां तक ​​केवल रही (0,0) सह ords आप शायद एमुलेटर का उपयोग कर रहे हैं। यदि आप ग्रहण का उपयोग कर रहे हैं तो एमुलेटर नियंत्रण पर जाएं और नीचे आप डिवाइस पर नकली सह-आदेश भेज सकते हैं

1

आप सही अनुमति का उपयोग नहीं कर रहे हैं। सही एक है:

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

वैसे, अपने मांग केवल द्वारा पूरा किया जा सकता:

<using-permission android:name="ACCESS_FINE_LOCATION" />

तो आप भेजने के लिए ACCESS_COARSE_LOCATION

5

के लिए कोई जरूरत नहीं है एमुलेटर के लिए स्थान तय करें, क्योंकि एमुलेटर सॉफ़्टवेयर है जिसे आपको स्थान फिक्स के साथ प्रदान करने की आवश्यकता है।

आप ग्रहण का उपयोग कर रहे हैं, तो जाना

Window -> Show view -> Other

करें एंड्रॉयड टैब पर और एमुलेटर नियंत्रण के लिए खोज करते हैं।
आप एमुलेटर नियंत्रण विंडो को स्थान नियंत्रणों पर नेविगेट करने के बाद देखते हैं।
यू नीचे पिक

sending loc fix

में देख के बाद आप loc ठीक भेजा है आप

Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

कहाँ lmLocationManager वस्तु इतनी काम का 90% किया जाता है का उपयोग कर सकते हैं;)

चीयर्स!

+0

OFC मिल गया है, आपको मोक्लोकेशन, फाइनलोकेशन, प्रकटीकरण में न्यायालय अनुमतियों की आवश्यकता है –