Scusate ma ho editato....vorrei solo chiedere com'č é possibile aggiustare l' accelerometro per evitare che mi ricompaiano le varie notifiche...e se c'č un modo per controllare se disattivato il gps e mi aggiorna l' overlay con quello del wifi.
Parte che precede il metodo onCreate
codice:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.Window;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
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 CustomControllerMapActivity extends MapActivity{
/*
* Tag del log
*/
private final static String LOG_TAG = "CustomControllerMapActivity";
/*
*/
/*
* Riferimento alla MapView
*/
private MapView mapView;
/*
* Riferimento al MapController
*/
private MapController mapController;
//Riferimento al MyLocationOverlay
private MyLocationOverlay myLocationOverlay;
// Otteniamo il riferimento al LocationManager
LocationManager locationManager;
//Riferimento al provider
Location location;
LocationListener locationListener = new LocationListener() {
// @Override
public void onLocationChanged(Location location) {
// Aggiorna il marker della mappa
mapView.invalidate();
// Aggiorna la location
Double geoLat = location.getLatitude()*1E6;
Double geoLng = location.getLongitude()*1E6;
GeoPoint point = new GeoPoint(geoLat.intValue(), geoLng.intValue());
mapController.setCenter(point);
}
// @Override
public void onProviderDisabled(String provider) {
Toast.makeText(CustomControllerMapActivity.this,
"GPS disabilitato", Toast.LENGTH_SHORT).show();
}
// @Override
public void onProviderEnabled(String provider) {
Toast.makeText(CustomControllerMapActivity.this,
"GPS abilitato", Toast.LENGTH_SHORT).show();
}
// @Override
public void onStatusChanged(String provider, int status,Bundle extras) {
Toast.makeText(CustomControllerMapActivity.this,
"onStatusChanged "+provider+" status: "+status, Toast.LENGTH_SHORT).show();
}
};
public void updateLocationOverlay() {
if (location == null) { return; }
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.freccia);
MyItemizedOverlay myItemizedOverlay = new MyItemizedOverlay(drawable);
GeoPoint point = new GeoPoint((int)(location.getLatitude() * 1E6), (int)(location.getLongitude() * 1E6));
OverlayItem overlayitem = new OverlayItem(point, "", "");
myItemizedOverlay.addOverlay(overlayitem);
mapOverlays.add(myItemizedOverlay);
mapController.setCenter(point);
mapController.animateTo(point);
}
//Componente per la ricerca delle reti
WifiManager wifi;
int size = 0;
List<ScanResult> results;
String ITEM_KEY = "key";
ArrayList<HashMap<String, String>> arraylist = new ArrayList<HashMap<String, String>>();
SimpleAdapter adapter;
ListView lv;
TextView textStatus;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Mettiamo la View a tutto schermo
requestWindowFeature(Window.FEATURE_NO_TITLE);
//Visualizziamo la mappa
setContentView(R.layout.main);
// Otteniamo il riferimento alla MapView
mapView = (MapView)findViewById(R.id.mapView);
// Otteniamo il riferimento al LocationManager
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
//Verifichiamo se il GPS č abiliato
if(!locationManager.isProviderEnabled("gps")){
Toast.makeText(this, "GPS disabilitato. Abilitare per una maggiore precisione.", Toast.LENGTH_LONG).show();
}
// Otteniamo il riferimento al controller
mapController = mapView.getController();
Log.i(LOG_TAG, "MapController obtained!");
mapController.setZoom(20);
// Rendiamo la mappa cliccabile e quindi ne permettiamo
// il pan
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
// Registriamo il LocationListener al provider GPS
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5, 1, locationListener);
//Usiamo il provider Location GPS
location= locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(!locationManager.isProviderEnabled("gps")){ //Non c' č il gps, utilizzo la rete
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5, 1, locationListener);
location= locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView);
List<Overlay> overlays = mapView.getOverlays();
overlays.add(myLocationOverlay);
myLocationOverlay.enableMyLocation();
Toast.makeText(this, "Ecco la tua posizione: "+location.getLatitude()+": "+location.getLongitude(), Toast.LENGTH_LONG).show();
}
else {
/* // Registriamo il LocationListener al provider GPS
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5, 1, locationListener);
//Usiamo il provider Location GPS
location= locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);*/
this.updateLocationOverlay();
Toast.makeText(this, "Ecco la tua posizione: "+location.getLatitude()+": "+location.getLongitude(), Toast.LENGTH_LONG).show();
}
}
Parte relativa all' onCreate:
codice:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Mettiamo la View a tutto schermo
requestWindowFeature(Window.FEATURE_NO_TITLE);
//Visualizziamo la mappa
setContentView(R.layout.main);
// Otteniamo il riferimento alla MapView
mapView = (MapView)findViewById(R.id.mapView);
// Otteniamo il riferimento al LocationManager
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
//Verifichiamo se il GPS č abiliato
if(!locationManager.isProviderEnabled("gps")){
Toast.makeText(this, "GPS disabilitato. Abilitare per una maggiore precisione.", Toast.LENGTH_LONG).show();
}
// Otteniamo il riferimento al controller
mapController = mapView.getController();
Log.i(LOG_TAG, "MapController obtained!");
mapController.setZoom(20);
// Rendiamo la mappa cliccabile e quindi ne permettiamo
// il pan
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
if(!locationManager.isProviderEnabled("gps")){ //Non c' č il gps, utilizzo la rete
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5, 1, locationListener);
location= locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView);
List<Overlay> overlays = mapView.getOverlays();
overlays.add(myLocationOverlay);
myLocationOverlay.enableMyLocation();
Toast.makeText(this, "Ecco la tua posizione: "+location.getLatitude()+": "+location.getLongitude(), Toast.LENGTH_LONG).show();
}
else {
// Registriamo il LocationListener al provider GPS
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5, 1, locationListener);
//Usiamo il provider Location GPS
location= locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
this.updateLocationOverlay();
Toast.makeText(this, "Ecco la tua posizione: "+location.getLatitude()+": "+location.getLongitude(), Toast.LENGTH_LONG).show();
}
}