Tôi muốn hiển thị vị trí hiện tại của mình, nhưng nó cho tôi thấy vĩ độ và kinh độ mà tôi đã đặt trên dòng lệnh! Nếu tôi không thiết lập các tham số trên dòng lệnh, nó cho tôi thấy vĩ độ và kinh độ có trong Eclipse!vị trí hiện tại của gps android
Có ai có ý tưởng về điều đó không? Tôi đang thử nghiệm với AVD.
Tôi đã thực hiện kiểm tra để xem liệu vị trí của tôi đã được bật chưa, nhưng chưa. Tôi không chắc tại sao lại như thế.
Đây là mã của tôi:
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());
}
}
}
Cảm ơn!
gps sẽ không hoạt động trong trình giả lập. Hãy thử mã của bạn trên một thiết bị thực. – Snicolas
Vui lòng kiểm tra liên kết này có thể giúp bạn. [Vị trí GPS trong Trình giả lập Android] (http://stackoverflow.com/questions/2279647/how-to-emulate-gps-location-in-the-android-emulator) –
nhờ Snicolas mybe câu trả lời của bạn là những gì tôi đang tìm kiếm nhưng làm thế nào tôi có thể nhận được các tập tin apk? –