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


 
Herramientas
  #1  
Viejo 20/02/13, 19:52:36
Avatar de carrobe1390
carrobe1390 carrobe1390 no está en línea
Miembro del foro
Mensajes: 47
 
Fecha de registro: feb 2013
Localización: Guayaquil
Mensajes: 47
Modelo de smartphone: Samsung Galaxy S3
Versión de ROM: 4.1.2
Tu operador: Claro
Mencionado: 0 comentarios
Tagged: 0 hilos
Error al remover actualizaciones del gps

Tengo el sgte codigo el cual me localiza tanto por gps como por la red mi posicion

package com.example.proyectojw;

import java.util.List;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.location.GpsStatus.Listener;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.widget.Button;
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;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

public class MainMapa extends MapActivity {
MapController mapController;
Location location,locationg;
MapView mapView;
Button bt1;
Toast toast;
LocationManager locationManager ,locationManagerg;
MyLocationOverlay mlo;
Context mContext;
Boolean isNetworkEnabled;
Double lat,lng,pre;
ProgressDialog dialog;
GeoPoint point;
LocationListener loclg,locl;
Listener listener;

private static final int DIALOGO_CONFIRMACION = 1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main_map);
wifienabled();
//posicion();
}

@Override
public void onBackPressed() {
showDialog(DIALOGO_CONFIRMACION);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.activity_main_map , menu);
return true;
}

public void wifienabled(){
WifiManager myWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

if(myWifiManager.isWifiEnabled()){
initializenetwork();
posicion();
toast = Toast.makeText(getApplicationContext(), "Conexion Wi-Fi On", Toast.LENGTH_LONG);
toast.setDuration(1500);
toast.show();

}
else{toast = Toast.makeText(getApplicationContext(), "Conexion Wi-Fi Off", Toast.LENGTH_LONG);
toast.setDuration(1500);
toast.show();}
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_wifi:
WifiManager myWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
isNetworkEnabled = myWifiManager.isWifiEnabled();
myWifiManager.setWifiEnabled(true);

if(myWifiManager.isWifiEnabled())
{toast = Toast.makeText(getApplicationContext(), "Tu Conexion Wi-Fi Esta On", Toast.LENGTH_LONG);
toast.setDuration(1500);
toast.show();
initializenetwork();
}else
{

posicion();
toast = Toast.makeText(getApplicationContext(), "Conexion Wi-Fi On", Toast.LENGTH_LONG);
toast.setDuration(1500);
toast.show();
}
break;
case R.id.menu_rotation:
toast = Toast.makeText(getApplicationContext(), "Rotacion Del Mapa On", Toast.LENGTH_LONG);
toast.setDuration(1500);
toast.show();
// Intent intent = new Intent(MainMapa.this, MapViewCompassDemo.class);
// startActivity(intent);
}
return false;
}


protected Dialog onCreateDialog(int id) {
Dialog dialogo = null;
switch(id)
{
case DIALOGO_CONFIRMACION:
dialogo = crearDialogoConfirmacion();
break;
default:
dialogo = null;
break;
}

return dialogo;
}


private Dialog crearDialogoConfirmacion()
{

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("Salir¿?");
builder.setIcon(R.drawable.android_48);
builder.setMessage("¿Confirma que desea salir de la aplicacion?");
builder.setPositiveButton("Aceptar", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Log.i("Dialogos", "Saliendo");
locationManager.removeUpdates(locl);
locationManagerg.removeUpdates(loclg);
finish();
}
});
builder.setNegativeButton("Cancelar", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Log.i("Dialogos", "Cobarde ¬¬.");
toast = Toast.makeText(getApplicationContext(), "Cobarde ¬¬", Toast.LENGTH_LONG);
toast.setDuration(1500);
toast.show();
dialog.cancel();
}
});

return builder.create();
}

public void initializeGPS(){

locationManagerg = (LocationManager)getSystemService(Context.LOCATION _SERVICE);
locationg = locationManagerg.getLastKnownLocation(LocationMana ger.GPS_PROVIDER);
loclg = new LocationListener() {

@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub

}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}

@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}

};
locationManagerg.requestLocationUpdates(LocationMa nager.GPS_PROVIDER, 500, 0, loclg);
locationg = locationManagerg.getLastKnownLocation(LocationMana ger.GPS_PROVIDER);

}

public void initializenetwork(){

locationManager = (LocationManager)getSystemService(Context.LOCATION _SERVICE);
location = locationManager.getLastKnownLocation(LocationManag er.NETWORK_PROVIDER);
locl = new LocationListener() {

@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub

}

@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}

@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}

@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}

};
locationManager.requestLocationUpdates(LocationMan ager.NETWORK_PROVIDER, 500, 0, locl);
}


private void posicion(){
mapView = (MapView)findViewById(R.id.mapa);
mapView.setBuiltInZoomControls(true);
mapView.setSatellite(true);
mapView.setStreetView(true);
mapView.setTraffic(true);

mapController = mapView.getController();

lat = location.getLatitude()*1E6;
lng = location.getLongitude()*1E6;
pre = location.getAccuracy()*1E6;
List<Overlay> mapOverlays = mapView.getOverlays();
mlo = new MyLocationOverlay(this, mapView);
Drawable drawable = this.getResources().getDrawable(R.drawable.map_pin _32);
MyOverlay itemizedOverlay = new MyOverlay(drawable, this);

point = new GeoPoint(lat.intValue(),lng.intValue());

Toast.makeText(getApplicationContext(), "Tu Localizacion es : \nLat: " + lat + "\nLong: " + lng +
"\nPre: "+pre, Toast.LENGTH_LONG).show();
OverlayItem overlayitem = new OverlayItem(point, "Su posicion actual es : ", "Latitud: " + lat + "\nLongitud: " + lng +
"\nPrecision: "+pre);

itemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedOverlay);
mapController.setCenter(point);
mapController.animateTo(point);
mapController.setZoom(16);

mlo.enableMyLocation();
mlo.enableCompass();
mapOverlays.add(mlo);
mapView.postInvalidate();
}

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


}

Pero el problema es con el gps cuando intento remover las actualizaciones me refleja el sgte mensaje

FATAL EXCEPTION : main
java.lang.NullPointerException
at com.example.proyectojw.MainMapa$1.onClick(MainMapa .java:148)

y la linea del error es la sgte
locationManagerg.removeUpdates(loclg);

Alguien me hecha una mano?
Responder Con Cita


Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 21:47:10 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007