![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Localizacion
hola
regreso con un tema de gps ya que necesito que al dar click a mi boton muestre mi ubicacion ya me salen los mapas de google pero no me muestra donde estoy ya que no se como reaizar 4esto alguien me puede ayudar?? este es mi codigo Código:
public class GoogleMaps extends MapActivity {
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.gps);
MapView mapView =(MapView) findViewById (R.id.map_view);
mapView.setBuiltInZoomControls(true);
LocationManager locationManager = (LocationManager) getSystemService (Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates (LocationManager.GPS_PROVIDER,6000,50,
new Location (mapView.getController(),locationManager,getBaseContext()));
mapView.setBuiltInZoomControls(true);
}
@Override
protected boolean isRouteDisplayed()
{
return false;
}
}
Código:
public class Location implements LocationListener {
private Context context;
private LocationManager locationManager;
private MapController mapController;
public Location (MapController mapController, LocationManager locationManager, Context context)
{
this.mapController = mapController;
this.locationManager= locationManager;
this.context = context;
}
@Override
public void onLocationChanged (android.location.Location loc) {
Toast.makeText(context, "onLocationChanged",Toast.LENGTH_SHORT).show();
if(loc!=null) {
Toast.makeText(context,
"Location changed : Lat: "+loc.getLatitude()+ "Lng: " + loc.getLongitude(), Toast.LENGTH_SHORT).show();
GeoPoint p =new GeoPoint (
(int) (loc.getLatitude() * 1E6),
(int) (loc.getLongitude()* 1E6));
mapController.animateTo (p);
mapController.setZoom (12);
}
else
{
Toast.makeText(context,"location changed to null value", Toast.LENGTH_SHORT).show ();
}
//por el emulador ??
locationManager.removeUpdates (this);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,
new Location (mapController, locationManager, context));
}
@Override
public void onProviderDisabled (String arg0) {
Toast.makeText(context,"Provider Disabled",
Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String arg0){
Toast.makeText(context, "Provider Enabled",
Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle arg2) {
Toast.makeText(context, "Status on " + provider + " is " + getStatusMessage(status),
Toast.LENGTH_SHORT).show();
}
private String getStatusMessage (int status) {
//TODO Auto-generated method stub
if (status ==1)
return "contecting";
else if (status ==2)
return "conected";
return "unknown";
}
}
|
|
|
|
#2
|
||||
|
||||
|
¿Lo estás probando en el emulador o en un móvil?
Si es en el emulador tienes que hacer esto: 1) En el emulador activar Ubicaciones Simuladas en Ajustes -> Aplicaciones -> Desarrollo 2) Con Telnet fijar una ubicación para que el emulador la emule (valga la redundancia) telnet localhost 5554 Y una vez que ha conectado geo fix <valor de longitud> <valor de latitud> Yo lo he probado en una aplicación que necesito GPS aproximado, es decir, usando NETWORK_PROVIDER, y funciona, supongo que con GPS_PROVIDER también debe funcionar. Y el código a primer golpe de vista sin fijarme mucho tiene pinta que está bien, también tiene pinta que lo has cogido de ejemplo de algún sitio, así que debe estar correcto. |
|
#3
|
||||
|
||||
|
si de hecho lo tome de otro lado pero no me muestra mi localizacion, abre el mapa y todo muy bien pero no m muestra donde estoy, y contestando a tu pregunta lo estoy probando en un movil
|
|
#4
|
||||
|
||||
|
bueno cambie un poco mi codigo jejeje
Código:
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import android.content.Context;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.widget.Toast;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
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.Overlay;
import com.google.android.maps.OverlayItem;
/**
*
* @author Inmobart
*/
public class GoogleMaps extends MapActivity {
private MapView mapView;
private MapController mc;
private LocationManager locationmanager;
@Override
public void onCreate(Bundle Bundle) {
super.onCreate(Bundle);
setContentView(R.layout.gps);
mapView=(MapView) findViewById(R.id.map_view);
mapView.setBuiltInZoomControls(true);
mapView.setSatellite(true);
mapView.setStreetView(false);
mapView.setTraffic(false);
mc =mapView.getController();
mc.setZoom(14);
locationmanager= (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,new GeoUpdateHandler());
}
@Override
protected boolean isRouteDisplayed(){
return false;
}
public class GeoUpdateHandler implements LocationListener{
@Override
public void onLocationChanged(Location location){
int lat=(int) (location.getLatitude()*1E6);
int lng=(int) (location.getLongitude()*1E6);
GeoPoint point = new GeoPoint (lat,lng);
mc.setCenter(point);
}
public void onStatusChanged(String provider, int status, Bundle extras) {}
public void onProviderEnabled(String arg0) {}
public void onProviderDisabled(String arg0) {}
}
Última edición por gohan0189 Día 02/03/12 a las 00:00:26 |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 23:55:39 (GMT +1)
HTCMania: líderes desde el 2007





