/** * 获取基站信息 * @return * @throws Exception */ public SCell getCellInfo() throws Exception { SCell cell = new SCell(); TelephonyManager mTelNet = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); GsmCellLocation location = (GsmCellLocation) mTelNet.getCellLocation(); if (location == null) throw new Exception("基站信息为空"); String operator = mTelNet.getNetworkOperator(); int mcc = Integer.parseInt(operator.substring(0, 3)); int mnc = Integer.parseInt(operator.substring(3)); int cid = location.getCid(); int lac = location.getLac(); cell.MCC = mcc; cell.MNC = mnc; cell.LAC = lac; cell.CID = cid; return cell; }
/** * 通过基站信息获取经纬度 * @param cell * @return * @throws Exception */ private SItude getItude(SCell cell) throws Exception { SItude itude = new SItude();
HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("http://www.google.com/loc/json"); try { 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); holder.put("radio_type", "gsm"); holder.put("carrier", "HTC");
JSONObject tower = new JSONObject(); tower.put("mobile_country_code", cell.MCC); tower.put("mobile_network_code", cell.MNC); tower.put("cell_id", cell.CID); tower.put("location_area_code", cell.LAC);
JSONArray towerarray = new JSONArray(); towerarray.put(tower); holder.put("cell_towers", towerarray);
StringEntity query = new StringEntity(holder.toString()); post.setEntity(query);
HttpResponse response = client.execute(post); HttpEntity entity = response.getEntity(); BufferedReader buffReader = new BufferedReader( new InputStreamReader(entity.getContent())); StringBuffer strBuff = new StringBuffer(); String result = null; while ((result = buffReader.readLine()) != null) { strBuff.append(result); } JSONObject json = new JSONObject(strBuff.toString()); JSONObject subjosn = new JSONObject(json.getString("location"));
itude.latitude = subjosn.getString("latitude"); itude.longitude = subjosn.getString("longitude");
Log.i("Itude", itude.latitude + itude.longitude);
} catch (Exception e) { Log.e(e.getMessage(), e.toString()); throw new Exception("" + e.getMessage()); } finally { post.abort(); client = null; }
return itude; }
/** * 通过经纬度到Google map上获取地理位置 * @param itude * @return * @throws Exception */ private String getLocation(SItude itude) throws Exception { String resultString = ""; String urlString = String.format( "http://maps.google.cn/maps/geo?key=abcdefg&q=%s,%s", itude.latitude, itude.longitude); Log.i("URL", urlString); HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(urlString); try { HttpResponse response = client.execute(get); HttpEntity entity = response.getEntity(); BufferedReader buffReader = new BufferedReader( new InputStreamReader(entity.getContent())); StringBuffer strBuff = new StringBuffer(); String result = null; while ((result = buffReader.readLine()) != null) { strBuff.append(result); } resultString = strBuff.toString(); if (resultString != null && resultString.length() > 0) { JSONObject jsonobject = new JSONObject(resultString); JSONArray jsonArray = new JSONArray(jsonobject.get("Placemark") .toString()); resultString = ""; for (int i = 0; i < jsonArray.length(); i++) { resultString = jsonArray.getJSONObject(i).getString( "address"); } } } catch (Exception e) { throw new Exception("sd:" + e.getMessage()); } finally { get.abort(); client = null; } return resultString; }
public class SCell { public int MCC; public int MNC; public int LAC; public int CID; }
public class SItude { public String latitude; public String longitude; }

更多相关文章

  1. Android 获取未安装的APK图标、版本号、包名等信息
  2. Android:手机信息的发送
  3. Android 获取手机电量信息
  4. Android系统信息查看方法
  5. php获取手机设备信息
  6. android 3G 手机信号 信息获取
  7. android 获取 apk mainfest.xml中的信息
  8. android打开系统设置或信息界面
  9. android studio logcat 打印不出信息

随机推荐

  1. Android(安卓)TabLayout 的一些小问题
  2. Android软件开发环境搭建
  3. android listview setselection 失效解决
  4. Android(安卓)官方屏幕适配之ScreenMatch
  5. android经典面试题集锦
  6. 使用application类,实现共享对象实例,实现s
  7. web端、android端的文件上传
  8. Android(安卓)View添加Listener小技巧
  9. 2014.7.23 cocos2d-x3.2到android的联调
  10. Android(安卓)开发入门-活动的基本用法