private Location getCurrentLocationGPS() {
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String locationProvider = locationManager.getBestProvider(criteria,
true);
Location location = locationManager
.getLastKnownLocation(locationProvider);
return location;
}
// 根据wifi获取当前位置
private Location getCurrentLocationWifi(Context context) {
Location location=null;
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
try
{
WifiManager wifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.isWifiEnabled())
{
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
}
catch(Exception e)
{
}
return location;
}
// 根据基站获取当前的位置
private Location getCurrentLocationAGPS() {
Location location = null;
if (telephonyManager.getCellLocation() == null) {
}
GsmCellLocation gcl = (GsmCellLocation) telephonyManager
.getCellLocation();
int cid = gcl.getCid();
int lac = gcl.getLac();
int mcc = Integer.valueOf(telephonyManager.getNetworkOperator()
.substring(0,
3));
int mnc = Integer.valueOf(telephonyManager.getNetworkOperator()
.substring(3,
5));
try {
// 组装JSON查询字符串
JSONObject holder = new JSONObject();
holder.put("version", "1.1.0");
holder.put("host", "maps.google.com");
// holder.put("address_language", "zh_CN");
holder.put("request_address", true);
JSONArray array = new JSONArray();
JSONObject data = new JSONObject();
data.put("cell_id", cid); // 25070
data.put("location_area_code", lac);// 4474
data.put("mobile_country_code", mcc);// 460
data.put("mobile_network_code", mnc);// 0
array.put(data);
holder.put("cell_towers", array);
// 创建连接,发送请求并接受回应
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.google.com/loc/json");
StringEntity se = new StringEntity(holder.toString());
post.setEntity(se);
HttpResponse resp = client.execute(post);
HttpEntity entity = resp.getEntity();
BufferedReader br = new BufferedReader(
new InputStreamReader(entity.getContent()));
StringBuffer resultStr = new StringBuffer();
String readLine = null;
while ((readLine = br.readLine()) != null) {
resultStr.append(readLine);
}
JSONObject jsonResult = new JSONObject(resultStr.toString());
JSONObject jsonLocation = jsonResult.getJSONObject("location");
double jsonLat = jsonLocation.getDouble("latitude");
double jsonLon = jsonLocation.getDouble("longitude");
location = new Location("AGPS");
location.setLatitude(jsonLat);
location.setLongitude(jsonLon);
} catch (Exception e) {
// TODO: handle exception
}
return location;
}