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

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;
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值