您的位置:首页 > 其它

通过gps,wifi,基站定位获取当前位置

2011-12-08 16:23 656 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: