2011-12-23 19 views
6

मैं अपना वर्तमान स्थान दिखाना चाहता हूं, लेकिन यह मुझे अक्षांश रेखा पर सेट अक्षांश और देशांतर दिखाता है! यदि मैं कमांड लाइन पर पैरामीटर सेट नहीं करता हूं, तो यह मुझे ग्रहण में अक्षांश और देशांतर शामिल करता है!एंड्रॉइड जीपीएस वर्तमान स्थान

क्या कोई ऐसा व्यक्ति है जिसके बारे में कोई विचार है? मैं एवीडी के साथ परीक्षण कर रहा हूँ।

मैं देखने के लिए अगर मेरे स्थान सक्षम किया गया है एक परीक्षण किया है, लेकिन ऐसा नहीं है। मुझे यकीन नहीं है कि ऐसा क्यों है।

package com.manita.mapuse; 


import java.io.InputStream; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 

import android.content.Context; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.KeyEvent; 
import android.widget.Toast; 

import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapController; 
import com.google.android.maps.MapView; 
import com.google.android.maps.MyLocationOverlay; 



public class MapuseActivity extends MapActivity implements LocationListener { 

    private MapView mapView = null; 
     private LocationManager lm = null; 
     private double lat = 0; 
     private double lng = 0; 
     private double alt = 0; 
     private MapController mc = null; 
     private MyLocationOverlay myLocation = null; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mapView = (MapView) this.findViewById(R.id.mapView); 
     mapView.setBuiltInZoomControls(true); 

     lm = (LocationManager) this.getSystemService(LOCATION_SERVICE); 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this); 
     lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10000, 0, 
      this); 

     mc = mapView.getController(); 
     mc.setZoom(10); 

     myLocation = new MyLocationOverlay(getApplicationContext(), mapView); 
     myLocation.runOnFirstFix(new Runnable() { 
      public void run() { 
      mc.animateTo(myLocation.getMyLocation()); 
      mc.setZoom(10); 
      } 
     }); 


     LocationManager locationManager; 
     String context = Context.LOCATION_SERVICE; 
     locationManager = (LocationManager)getSystemService(context); 
     String provider = LocationManager.GPS_PROVIDER; 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 0, this); 
     Location location = locationManager.getLastKnownLocation(provider); 
     locationManager.getProvider(provider); 
     if(!locationManager.isProviderEnabled(provider)){ 
      locationManager.setTestProviderEnabled(provider, true); 
      } 
      boolean enabled = locationManager.isProviderEnabled(provider); 
      if(enabled){ 

       Toast.makeText(getBaseContext(), 
         "provide enabled : Latitude = " + lat + " Longitude = " + lng+" Altitude = " + alt, 
         Toast.LENGTH_SHORT).show(); 

      } 
      else{ 
       Toast.makeText(getBaseContext(), 
         "provider disabled : Latitude = " + lat + " Longitude = " + lng+" Altitude = " + alt, 
         Toast.LENGTH_SHORT).show(); 

      } 
      if(location!=null){ 
       lat = location.getLatitude(); 
       lng = location.getLongitude(); 
       alt = location.getAltitude(); 
       Toast.makeText(getBaseContext(), 
         "providerrr enabled : Latitude = " + lat + " Longitude = " + lng+" Altitude = " + alt, 
         Toast.LENGTH_SHORT).show(); 
      } 
      else{ 
       Toast.makeText(getBaseContext(), 
         "location not found : Latitude = " + lat + " Longitude = " + lng+" Altitude = " + alt, 
         Toast.LENGTH_SHORT).show(); 
      } 



     mapView.getOverlays().add(myLocation); 
     if (myLocation.isMyLocationEnabled()!=false) 
     { 
      GeoPoint p =myLocation.getMyLocation(); 
      lat= p.getLatitudeE6(); 
      lng= p.getLongitudeE6(); 
      alt = location.getAltitude(); 
      Toast.makeText(getBaseContext(), 
        "geolocalisation activé lat: "+lat+ " long: " +lng +" Altitude = " + alt, 
        Toast.LENGTH_SHORT).show(); 
     } 
     else 
     { 

      Toast.makeText(getBaseContext(), 
        "geolocalisation desactivée" , 
        Toast.LENGTH_SHORT).show(); 
     } 

     // appel de la fonction insert values 
     insertvalues(lat, lng); 
     } 

     @Override 
     protected void onResume() { 
     super.onResume(); 
     myLocation.enableMyLocation(); 
     myLocation.enableCompass(); 
     } 

     @Override 
     protected boolean isRouteDisplayed() { 
     return false; 
     } 

     @Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_S) { 
      mapView.setSatellite(!mapView.isSatellite()); 
      return true; 
     } 
     if (keyCode == KeyEvent.KEYCODE_T) { 
      mapView.setSatellite(!mapView.isTraffic()); 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
     } 

     @Override 
     public void onLocationChanged(Location location) { 
     lat = location.getLatitude(); 
     lng = location.getLongitude(); 
     Toast.makeText(
      getBaseContext(), 
      "Location change to : Latitude = " + lat + " Longitude = " 
       + lng, Toast.LENGTH_SHORT).show(); 
     GeoPoint p = new GeoPoint((int) (lat * 1E6), (int) (lng * 1E6)); 
     mc.animateTo(p); 
     mc.setCenter(p); 
     } 

     @Override 
     public void onProviderDisabled(String provider) { 
     } 

     @Override 
     public void onProviderEnabled(String provider) { 
     } 

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


     ///// insert valeurs .... 
     public void insertvalues(double lat, double lng){ 




      //http post c à d envoi des données 
      try{ 
       HttpClient httpclient = new DefaultHttpClient(); 
       HttpPost httppost = new 

       HttpPost("http://www.pizza-paris.com/clic/marwa/test/form.php?latitude="+lat+"&longitude="+lng); 

       HttpResponse response = httpclient.execute(httppost); 
       HttpEntity entity = response.getEntity(); 
       InputStream is = entity.getContent(); 
       Log.i("postData", response.getStatusLine().toString()); 

      } 

      catch(Exception e) 
      { 
       Log.e("log_tag", "Error in http connection "+e.toString()); 
      }  


      } 
} 

धन्यवाद:

यह मेरा कोड है!

+0

जीपीएस एक एमुलेटर में काम नहीं करेगा। एक वास्तविक डिवाइस पर अपना कोड आज़माएं। – Snicolas

+0

कृपया इस लिंक को चेक करें, यह आपकी मदद कर सकता है। [एंड्रॉइड एमुलेटर में जीपीएस स्थान] (http://stackoverflow.com/questions/2279647/how-to-emulate-gps-location-in-the-android-emulator) –

+0

धन्यवाद स्निकोलस mybe आपका उत्तर है जो मैं खोज रहा हूं लेकिन मैं एपीके फ़ाइल कैसे प्राप्त कर सकता हूं ??? –

उत्तर

1

जब तक अपने पीसी/मैक GPS है, AVD अपने स्थान पता लगाने की क्षमता नहीं है। वास्तविक डिवाइस के साथ या मैन्युअल रूप से मान दर्ज करके अपने प्रोग्राम का परीक्षण करें।

+0

महान धन्यवाद :) –

+0

या का उपयोग 'भू fix' http://stackoverflow.com/questions/2279647/how-to-emulate-gps-location-in-the-android-emulator –

4

अपना वर्चुअल डिवाइस मैनेजर खोलें और संपादित करें। अनुभाग में हार्डवेयर नया क्लिक करें और जीपीएस समर्थन जोड़ें और मान को सही में बदलें। अब एमुलेटर शुरू करें और एक कंसोल खोलें। यदि एमुलेटर कंसोल telnet localhost 5554 में पूर्ण प्रकार बूट हो गया है। जब टेलनेट कनेक्शन स्थापित होता है तो आप इस तरह के स्थानों में डाल सकते हैं: geo fix 21.42 42

+0

हाँ यह स्थान प्राप्त है कि मैं लोकलहोस्ट पर सेट करता हूं लेकिन मैं इसे अपने वर्तमान स्थान को दिखाना चाहता हूं जिसका मतलब है कि मैं अभी कहां हूं !!! –

+0

पता लगाएं कि आपके वर्तमान निर्देशांक क्या हैं और 'भू फिक्स' का उपयोग करके उन्हें दर्ज करें या जाएं और एक एंड्रॉइड खरीदें। –

3

मौजूदा उत्तरों में जोड़ने के लिए, यदि आपको वास्तव में अपने एमुलेटर पर कार्यक्षमता का परीक्षण करने की आवश्यकता है तो आप नकली स्थानों का उपयोग कर सकते हैं। अधिक आप यहां http://developer.android.com/guide/topics/location/obtaining-user-location.html#MockData पा सकते हैं।

मन आप इस (ACCESS_MOCK_LOCATION) के लिए आवश्यक अनुमति जोड़ने के लिए है कि में रखें।

आशा है कि इससे मदद मिलती है!

+0

हां मैंने किया लेकिन मैं चाहता हूं कि यह मेरा वर्तमान स्थान दिखाए, न कि तालाब में locatiob !!! –

+0

फिर आपको अपने पीसी के साथ जीपीएस या जीपीएस के साथ एक स्मार्टफोन की आवश्यकता है। –

+0

हाँ !! मेरे ऐप का संस्करण 7 है !! क्या मैं इसे आईफोन के साथ परीक्षण कर सकता हूं ?? –

संबंधित मुद्दे