前言:

GPS定位能提供精确,详细的数据。但是有的时候我们不能通过GPS获得数据,如在屋子里面,无GPS功能等情况。那我们就需要其他的定位手段,基站定位是一个不错的选择。

当我们手机开机时,手机会自动向信号最强的无线通讯台联系,注册信息,这个通讯台就是我们所说的基站,每个基站都有自己的id,我们通过这个基站的id能够找到基站的位置,而国内城市的基站密度可以达到500米以下或者更低,所以能够大体上确定我们的位置。

准备工具:

1.TelephonyManager:主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在这里我们就是通过这个类获得基站信息。

2.GsmCellLocation:装载着从TelephonyManager中获得的信息。

3.JSONObject,JSONArray:组建json相关的类。

4.联网相关的类。

代码:->

1.启动按钮和画板

mTextView=

(TextView) findViewById(R.id.textview);

mButton=

(Button) findViewById(R.id.button);

2.获得基站信息

mTManagerthis

.getSystemService(Context.TELEPHONY_SERVICE);

GsmCellLocationgcl

= (GsmCellLocation)mTManager.getCellLocation();

intcid

= gcl.getCid();

intlac

= gcl.getLac();

intmcc

= Integer.valueOf(mTManager.getNetworkOperator().substring(0,

3));

intmnc

= Integer.valueOf(mTManager.getNetworkOperator().substring(3,

5));

String getNumber ="";

getNumber += ("cid:"+cid

+"\n");

getNumber += ("cid:"+lac

+"\n");

getNumber += ("cid:"+mcc

+"\n");

移动国家号

getNumber += ("cid:"+mnc

+"\n");

移动网络号

3.创建json

try{

JSONObjectjObject

=newJSONObject();

jObject.put("version","1.1.0");

jObject.put("host","maps.google.com");

jObject.put("request_address",true);

if(mcc

== 460) {

jObject.put("address_language","zh_CN");

}else{

jObject.put("address_language","en_US");

}

JSONArray jArray =newJSONArray();

JSONObject jData =newJSONObject();

jData.put("cell_id",

cid);

jData.put("location_area_code",

lac);

jData.put("mobile_country_code",

mcc);

jData.put("mobile_network_code",

mnc);

jArray.put(jData);

jObject.put("cell_towers",

jArray);

4.创建连接,发送请求并接受回应

DefaultHttpClient client =newDefaultHttpClient();

HttpPost post =newHttpPost(

"http://www.google.com/loc/json");

StringEntity se =newStringEntity(jObject.toString());

post.setEntity(se);

HttpResponse resp = client.execute(post);

BufferedReader br =null;

if(resp.getStatusLine().getStatusCode()

== HttpStatus.SC_OK)

{

br =newBufferedReader(

newInputStreamReader(resp.getEntity().getContent()));

StringBuffer sb =newStringBuffer();

}

5.获得数据参见json

Server Response

StringBuffer sb =newStringBuffer();

String result = br.readLine();

while(result

!=null)

{

sb.append(getNumber);

sb.append(result);

result = br.readLine();

}

mTextView.setText(sb.toString());

添加相关permission:

android 基站 变化,(转)android定位之基站定位相关推荐

  1. Android 数字变化特效,Android自定义View之酷炫吊炸天的数字圆环

    先看下最终的效果 开始实现 新建一个DoughnutView继承View public class DoughnutView extends View { } 先重写onMeasure方法,为什么要重 ...

  2. Android基站定位——单基站定位(二)

    转载请标明出处:http://blog.csdn.net/android_ls/article/details/8672856 基站定位原理:通过手机信号获取基站信息,然后调用第三方公开的根据基站信息 ...

  3. Android基站定位——三基站(多基站)定位(三)

    转载请标明出处:http://blog.csdn.net/android_ls/article/details/8673532 这一篇基于:Android基站定位--单基站定位(二) 阐述几个概念: ...

  4. android 定位服务和wifi,android WIFI定位和基站定位实现

    android WIFI定位和基站定位实现 来源:互联网 作者:佚名 时间:2015-04-01 13:38 关于定位原理网上很多,这里就不多说了.下面说怎么实现的,直接贴代码如下:首先是Util类: ...

  5. Android之手机定位方式(GPS定位,网络定位,基站定位)

    从前天学习GPS定位开始,这两天断断续续都在学习Android的三种基本定位方式. 1.GPS定位(基本Android机上都会有,缺点是必须在空旷的地方才有用) 2.网络定位(NetWork,这个很多 ...

  6. 可运行的GPS获取经纬度和获取基站例子(环境Android Studio 3.5.2扒拉能运行的例子找到太辛苦了要么版本太老。)

    可运行的GPS获取经纬度和获取基站例子(环境Android Studio 3.5.2扒拉能运行的例子找到太辛苦了要么版本太老.) 为了检测GPS和基站修改结果,结合网络例子.单独抠出来可运行实例,GP ...

  7. android获取包版本,Android获取应用名称、版本号、应用包名称,移动设备ID、MAC地址、基站信息和手机型号等详细信...

    创建一个android应用(AndroidTest),所需权限如下(AndroidManifest.xml文件): 接下来是MainActivity.java文件: package com.examp ...

  8. Android开发之实现Android原生定位

    本文主要实现GPS定位的方式,通过Android原生API获取经纬度. Android定位服务LocationManager 需要添加的权限 // 添加权限 <uses-permission a ...

  9. 手机基站定位(安卓手机定位源码)

    下面是手机基站定位代码: public class CellIDInfo {public int cellId;public String mobileCountryCode;public Strin ...

  10. Android之应用APN、WIFI、GPS定位小例子

    转自一个网上项目,由于是例子打包下载,出处不详.例子中自我写入注释. Activity类: package com.maxtech.common; import com.maxtech.common. ...

最新文章

  1. 图书资料管理课程设计(附源码和连接)
  2. ASP.NET MVC+Spring.net+Nhibernate+EasyUI+Jquery开发案例(1)
  3. Google Xpath Helper
  4. OpenCV防止数据溢出saturate_cast
  5. 精准高效估计多人3D姿态,美图北航分布感知式单阶段模型(CVPR 2022)
  6. 组件:参数验证、组件:事件传递
  7. 游戏筑基开发之初识指针
  8. 5个优化页面加载速度提高SEO排名的最佳实践
  9. SNS光纤交换机命令及作用
  10. IBM制造业专家赵亮:汽车及制造业质量体系管理
  11. 华为云视频会议系统介绍,云南昆明企业智能云视频会议系统解决方案
  12. 因果推断-Uplift Model:Causal Tree
  13. EventEmitter练习之--匿名聊天室
  14. SAP UI5 应用开发教程之一百 - 如何修改 SAP UI5 框架的源代码实现,以及使用本地部署的 SAP UI5 SDK 试读版
  15. SQL Server numeric数据类型
  16. 仿真(Simulation)
  17. Mac版excel如何快速进行数据拆分?
  18. 2021年福建高考成绩排名查询,福建高考排名查询方法,2021年福建高考成绩位次全省排名查询...
  19. C语言 五种基本的算术运算符
  20. 从0开始学股票第四课之量能的基本知识之成交量

热门文章

  1. 跨站点请求伪造的处理方法
  2. 奇怪的电梯(DP动态规划和BFS)
  3. 计算机信息安全专业代码0839,全国网络空间安全学科专业分布
  4. 「Python量化基础」时间序列的自相关性与平稳性
  5. 2022年第十三届蓝桥杯省赛B组python题目部分解题
  6. 专业实训三:智慧养老商业画布举例
  7. get请求中url传参中文乱码问题
  8. IBatis开发指南-夏昕
  9. YOLOV3训练环境的搭建
  10. (droid分享)新浪微博开发系列【十一】之查看微博正文