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. MYI 文件内容

    参考 http://blog.itpub.net/703656/viewspace-1018470/ 创建表结构 create table test(name char(20), age int, c ...

  2. JavaScript NodeList和Array

    原文引用脚本之家作者:Jeff Wong,谢谢大神提供资源 在Web前端编程中,我们通常会通过document.getElementsByTagName或者document.getElementsBy ...

  3. UVa 1393 (容斥原理、GCD) Highways

    题意: 给出一个n行m列的点阵,求共有多少条非水平非竖直线至少经过其中两点. 分析: 首先说紫书上的思路,编程较简单且容易理解.由于对称性,所以只统计“\”这种线型的,最后乘2即是答案. 枚举斜线包围 ...

  4. 信息学院第九届ACM程序设计竞赛题解

     A: 信号与系统 Time Limit: 1000 MS Memory Limit: 65536 KBTotal Submit: 238 Accepted: 44 Page View: 69 Des ...

  5. HDU 5289 Assignment

    题意:求一段长度为n的序列里有多少个子区间内的最大值减最小值小于k. 解法:RMQ+尺取法或单调队列.RMQ可以用st或者线段树,尺取法以前貌似YY出来过……只是不知道是这个东西…… 设两个标记l和r ...

  6. bzoj 3123 [Sdoi2013]森林(主席树,lca,启发式合并)

    Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数 ...

  7. AIM Tech Round 3 (Div. 2) (B C D E) (codeforces 709B 709C 709D 709E)

    rating又掉下去了.好不容易蓝了.... A..没读懂题,wa了好几次,明天问队友补上... B. Checkpoints 题意:一条直线上n个点x1,x2...xn,现在在位置a,求要经过任意n ...

  8. Delphi XE5 常用功具与下载

    1.Delphi XE5 正式版 http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.iso http: ...

  9. [iOS基础控件 - 4.4] 进一步封装"APP列表”,初见MVC模式

    A.从ViewController分离View 之前的代码中,View的数据加载逻辑放在了总的ViewController中,增加了耦合性,应该对控制器ViewController隐藏数据加载到Vie ...

  10. [OC Foundation框架 - 6] NSMutableString

    NSString是不可变的 NSMutableString是可变字符串   1.初始化 2.串联字符串 3.替换字符串 4.插入字符串 5.删除字符串   #pragma mark buffer st ...