Professional Documents
Culture Documents
mainactivity;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.location.Criteria;
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.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends Activity implements LocationListener {
private WifiManager mainWifiObj;
private WifiScanReceiver wifiReciever;
private ListView list;
private String wifis[];
private LocationManager locationManager;
private String provider;
private List<ScanResult> wifiScanList;
private DBAdapter dbAdapter;
private double latitude;
private double longitude;
private Location location;
dbAdapter = DBAdapter.getInstance(this);
dbAdapter.open();
locationManager =
(LocationManager)getSystemService(Context.LOCATION_SERVICE);
// Creating an empty criteria object
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setSpeedRequired(false);
criteria.setCostAllowed(true);
} catch (Exception e) {
}
}
});
final Button mapButton2 = (Button) this.findViewById(R.id.mapButton2);
mapButton2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
Intent intent = new Intent(MainActivity.this,
MapRangeActivity.class);
startActivity(intent);
} catch (Exception e) {
}
}
});
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {
intent.putExtra("security", getScanResultSecurityType(scan));
//intent.putExtra("time", scan.timestamp);
startActivity(intent);
}
});
if(location!=null ){
Log.w("stampo coordinate della loc", location.getLatitude()
+ "," +location.getLongitude());
dbAdapter.insertScan(wifiScanList.get(i), location,
getDateTime());
}else{
Log.i("location is NULLL", "NULLL");
if(getLongitude()!=0){
Log.i("l'altra non e' nulla ", getLongitude() +"");
}else{
Log.i("l'altra nulla anche", "00000");
}
}
}
//list.setAdapter(new ArrayAdapter<String>(getApplicationContext(),
//
android.R.layout.simple_list_item_1,wifis));
list.setAdapter(new MyAdapter(getApplicationContext(),
(ArrayList<ScanResult>)wifiScanList));
dbAdapter.printScans();
}
}
@Override
public void onLocationChanged(Location location) {
if(location!=null){
this.setLocation(location);
setLatitude(location.getLatitude());
setLongitude(location.getLongitude());
}
}
@Override
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
public double calculateDistance(double signalLevelInDb, double freqInMHz) {
double exp = (27.55 - (20 * Math.log10(freqInMHz)) - (signalLevelInDb)) /
20.0;
return Math.pow(10.0, exp);
}
return OPEN;
}
public static boolean isEnterprise(ScanResult scanResult) {
return scanResult.capabilities.contains(ENTERPRISE_CAPABILITY);
}
public static String getScanResultSecurityType(ScanResult scanResult) {
final String cap = scanResult.capabilities;
if(cap.contains("WPA") & cap.contains("WPA2")){
return "WPA/WPA2";
}
final String[] securityModes = { WEP, "WPA","WPA2", "EAP" };
for (int i = securityModes.length - 1; i >= 0; i--) {
if (cap.contains(securityModes[i])) {
return securityModes[i];
}
}
return OPEN;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public Location getLocation() {
return location;
return false;
}
//'point 2' is the point where the line through the circle
//intersection points crosses the line between the circle
//centers.