1. package cn.LocationStation;
    2. import java.io.BufferedReader;
    3. import java.io.InputStream;
    4. import java.io.InputStreamReader;
    5. import java.net.URL;
    6. import java.util.Date;
    7. import org.apache.http.HttpEntity;
    8. import org.apache.http.HttpResponse;
    9. import org.apache.http.client.methods.HttpPost;
    10. import org.apache.http.entity.StringEntity;
    11. import org.apache.http.impl.client.DefaultHttpClient;
    12. import org.json.JSONArray;
    13. import org.json.JSONObject;
    14. import android.app.Activity;
    15. import android.content.Context;
    16. import android.os.Bundle;
    17. import android.telephony.TelephonyManager;
    18. import android.telephony.gsm.GsmCellLocation;
    19. import android.view.View;
    20. import android.widget.Button;
    21. import android.widget.TextView;
    22. public class LocationStation extends Activity {
    23. TextView mTextView;
    24. Button mButton;
    25. TelephonyManager tm;
    26. /** Called when the activity is first created. */
    27. @Override
    28. public void onCreate(Bundle savedInstanceState) {
    29. super.onCreate(savedInstanceState);
    30. setContentView(R.layout.main);
    31. mTextView = (TextView) findViewById(R.id.textView001);
    32. mButton = (Button) findViewById(R.id.Button001);
    33. tm = (TelephonyManager) this
    34. .getSystemService(Context.TELEPHONY_SERVICE);
    35. mButton.setOnClickListener(new Button.OnClickListener() {
    36. @Override
    37. public void onClick(View v) {
    38. // TODO Auto-generated method stub
    39. GsmCellLocation gcl = (GsmCellLocation) tm.getCellLocation();
    40. int cid = gcl.getCid();
    41. int lac = gcl.getLac();
    42. int mcc = Integer.valueOf(tm.getNetworkOperator().substring(0,
    43. 3));
    44. int mnc = Integer.valueOf(tm.getNetworkOperator().substring(3,
    45. 5));
    46. try {
    47. // 组装JSON查询字符串
    48. JSONObject holder = new JSONObject();
    49. holder.put("version", "1.1.0");
    50. holder.put("host", "maps.google.com");
    51. // holder.put("address_language", "zh_CN");
    52. holder.put("request_address", true);
    53. JSONArray array = new JSONArray();
    54. JSONObject data = new JSONObject();
    55. data.put("cell_id", cid); // 25070
    56. data.put("location_area_code", lac);// 4474
    57. data.put("mobile_country_code", mcc);// 460
    58. data.put("mobile_network_code", mnc);// 0
    59. array.put(data);
    60. holder.put("cell_towers", array);
    61. // 创建连接,发送请求并接受回应
    62. DefaultHttpClient client = new DefaultHttpClient();
    63. HttpPost post = new HttpPost(
    64. "http://www.google.com/loc/json");
    65. StringEntity se = new StringEntity(holder.toString());
    66. post.setEntity(se);
    67. HttpResponse resp = client.execute(post);
    68. HttpEntity entity = resp.getEntity();
    69. BufferedReader br = new BufferedReader(
    70. new InputStreamReader(entity.getContent()));
    71. StringBuffer sb = new StringBuffer();
    72. String result = br.readLine();
    73. while (result != null) {
    74. sb.append(result);
    75. result = br.readLine();
    76. }
    77. JSONObject jsonObject = new JSONObject(sb.toString());
    78. JSONObject jsonObject1 = new JSONObject(jsonObject
    79. .getString("location"));
    80. getAddress(jsonObject1.getString("latitude"), jsonObject1
    81. .getString("longitude"));
    82. //mTextView.setText(sb.toString());
    83. } catch (Exception e) {
    84. // TODO: handle exception
    85. }
    86. }
    87. });
    88. }
    89. void getAddress(String lat, String lag) {
    90. try {
    91. URL url = new URL("http://maps.google.cn/maps/geo?key=abcdefg&q="
    92. + lat + "," + lag);
    93. InputStream inputStream = url.openConnection().getInputStream();
    94. InputStreamReader inputReader = new InputStreamReader(inputStream,
    95. "utf-8");
    96. BufferedReader bufReader = new BufferedReader(inputReader);
    97. String line = "", lines = "";
    98. while ((line = bufReader.readLine()) != null) {
    99. lines += line;
    100. }
    101. if (!lines.equals("")) {
    102. JSONObject jsonobject = new JSONObject(lines);
    103. JSONArray jsonArray = new JSONArray(jsonobject.get("Placemark")
    104. .toString());
    105. for (int i = 0; i < jsonArray.length(); i++) {
    106. mTextView.setText(mTextView.getText() + "\n"
    107. + jsonArray.getJSONObject(i).getString("address"));
    108. }
    109. }
    110. } catch (Exception e) {
    111. ;
    112. }
    113. }
    114. }

android 基站定位的更多相关文章

  1. Android基站定位

    Android基站定位   一.通过手机信号获取基站信息 通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释: MCC.Mobile Country C ...

  2. android基站定位程序获取地理位置

    目录 一.设置界面 二.为按钮绑定事件 三.获取基站信息 四.获取经纬度 五.获取物理位置 六.显示结果 七.运行程序 八.总结 九.程序代码 正文 在Android操作系统下,基站定位其实很简单,先 ...

  3. 电脑上安装的android虚拟机,能进行基站定位和GPS定位吗?要怎么做才能定位?(转)

    基站定位是通过电信运营商的服务来实现的,至少你得有SIM卡吧,一般电脑是不会有电话功能的吧,所以,通过基站定位不可能. GPS是需要有相应的硬件来支持的,类似于手机需要有GPS模块才可以,电脑一般没有 ...

  4. 百度定位SDK:弥补Android基站WIFI定位缺失

    http://tech.qq.com/a/20120524/000347.htm 如今,基于位置信息的移动应用越来越多,从餐饮.购物等本地生活服务,到定向广告的匹配.移动社交网络的构建,LBS类应用的 ...

  5. 手机自带的显示基站命令(android手机定位,iphone基站定位)

    手机自带的显示基站命令(安卓手机定位,苹果手机基站定位) 分类: 通信和网络2012-02-07 17:48 1734人阅读 评论(0) 收藏 举报 手机htciphone中兴三星网络 安卓手机自带快 ...

  6. Android手机定位技术的发展

    基于以下三种方式的移动位置:1. 网络位置 :2. 基站定位. 3. GPS定位 1 网络位置 前提是连接到网络:Wifi.3G.2G 到达IP址  比如:彩虹版QQ,珊瑚虫版QQ,就有一个功能显示对 ...

  7. Android 百度定位SDKv4.2及6.0_百度定位实例_安卓定位实例

    介绍 由于项目需要.前几天一直在研究百度定位的功能.通过不断的实践终于有结果了.不愿意独享 现在我把我的研究成果和大家分享一下.其实百度的 API 已经相当不错了 这之所以要写出来.一是自己做一个笔记 ...

  8. 关于GSM基站定位

    一、基站定位两个参数 1、什么是LAC:Location Area Code(LAC)地区区域码,用来划分区域 2、什么是CellID:Cell Tower ID(Cid)CellID代表一个移动基站 ...

  9. 用百度API实现热(WIFI)、GPS、基站定位

    直接在代码.. .嘎嘎 /** * 百度基站定位错误返回码 */ // 61 : GPS所在地结果 // 62 : 扫描整合的基础上有针对性的失败.在这一点上的定位结果无效. // 63 : 网络异常 ...

随机推荐

  1. bzoj3156

    斜率优化dp,比较裸 注意int64的运算 ..] of int64;     i,n,h,t:longint;     x,y,z:int64; function g(j,k:int64):doub ...

  2. echarts 问题2

    加载图表的区域div必须单独给定class,此样式中必须还有宽和高,不然图表出来之后会有这样那样的问题

  3. 【持续更新】D3 的学习资料

    经常有朋友问哪里有关于 D3 的比较好的学习资料,现整理成此文.以后找到更多更好的,会不断更新本文. 我是在2013年开始接触 D3 的,当时就觉得这个工具很好玩.至今,学习资料整理了不少.如果有朋友 ...

  4. Ext入门学习系列(三)复杂自定义窗体

    通过前2节的学习,基本掌握了Ext的语法和运行原理,可以作出一些简单的应用.本节我们一起来完成复杂点的对话框操作,因为在实际项目中经常要用到确认对话框等多种操作,然后根据客户的选择作出不同的响应. 一 ...

  5. HDU 5637 Transform 搜索

    题意:bc round 74 div1 1002 中文题 分析(官方题解):注意到答案实际上只和s⊕t有关, bfs预处理下从0到xx的最短步数, 然后查询O(1)回答即可. #include < ...

  6. myeclipse10 安装 testng插件

    下载插件: http://pan.baidu.com/s/1c0pghFE 放到dropins目录

  7. 【Ubuntu Java 开发环境搭建 】

    配置环境变量  在终端下:  sudo gedit /etc/profile   这里当然有些熟悉ubuntu的朋友也可以用 vim,   刚从windows转过来的朋友还是用gedit看着舒服写. ...

  8. Zabbix探索:使用msmtp进行邮件告警

    在Nagios时代就已经使用msmtp发送告警了,不过那时候偷懒,使用mutt发送来简化格式. 在Zabbix时代,更多人使用msmtp,所以官方论坛上有个zext_msmtp.sh的脚本,但是不要以 ...

  9. 各类JavaScript插件

    ZeroClipboard复制内容到剪切板(支持IE.FF.Chrome) ZeroClipboard.js ZeroClipboard.swf hotkeys键盘监听 jquery.hotkeys. ...

  10. Leetcode OJ : Evaluate Reverse Polish Notation Stack C++ solution

    #define ADDITION '+' #define SUBSTRACTION '-' #define MULTIPLICATION '*' #define DIVISION '/' class ...