前言:

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. arcgis 投影变换与坐标转换研究
  2. 2019年陕西省普通高校招生考生成绩统计表(理工、艺理、体育)
  3. 优酷路由宝刷梅林_优酷路由宝刷breed(不死)教程
  4. axure 如何设置选项联动_Axure下拉框级联操作
  5. c++获得总和S所需的最小硬币数量的函数(附完整源码)
  6. scp命令默认传输速度多大_每天一个linux命令(60):scp命令
  7. [转]SQL:JOIN用法
  8. Codeforces7C 扩展欧几里得
  9. SATI下载-安装-使用 一看便懂+spss聚类(附安装包)
  10. usb网卡android驱动win7+64,万能USB驱动 for win7 64bit v2017.11.15.955
  11. struts2上传 zip和rar文件类型
  12. 企业正确导入BPM系统要注意什么
  13. 手机自带html怎么卸载,手机自带软件怎么卸载
  14. lr_think_time()
  15. python调用小票打印机_PyQt5中使用Qprinter打印热敏小票
  16. 【视频】海康威视摄像头RTSP协议格式
  17. Apache CXF 简介
  18. 高性能数据库引擎 CoolHash 产品宣言 Fourinone4.0版新特性(转)
  19. 电脑考证必须用五笔输入吗
  20. win11 / win10 彻底删除系统“快速访问”中自动添加的文件夹 - 不再自动添加

热门文章

  1. fmincon函数求极值
  2. IP地址及子网划分计算题
  3. BUW EMX (Expert Moldbase Extentions) 13.0.2.1 x64 for Creo
  4. 大文件上传下载实现思路,分片、断点续传代码实现,以及webUpload组件
  5. Android面试线程,android 面试题 - 多线程部分
  6. 【渝粤教育】电大中专跨境电子商务理论与实务_1作业 题库
  7. 各种分类算法优缺点比较
  8. web前端课程设计——K.X的博客
  9. yolov3原理解析及代码流程
  10. 分享PC魔音Morin v2.6.5听歌·音乐神器