这是百度百科对基站定位的定义:

基站定位一般应用于手机用户,手机基站定位服务又叫做移动位置服务(LBS——Location Based Service),它是通过电信移动运营商的网络(如GSM网)获取移动终端用户的位置信息(经纬度坐标),在电子地图平台的支持下,为用户提供相应服务的一种增值业务,例如目前中国移动动感地带提供的动感位置查询服务等。

我的理解就是

如果你的手机插了手机卡,我就可以实时知道你的位置信息

那代码怎么写呢?

首先要知道得到哪些数据可以准确知道手机的位置。

mcc=460&mnc=1&lac=4301&ci=20986

有了这些数据,我们就可以得到这样的结果(看图):

是不是很爽?在这儿我们还有一些重要东西需要说明一下。
因为电信和移动联通有点儿不一样,所以查询时传输的数据也有点儿不一样,需要着重注意一下。
具体哪儿不一样,先看图

但是归根到底,我们需要这样几个数据
1、mcc 这个值是国家代码,中国就是 460
2、mnc 这个是网络类型,就是自己的手机卡是移动,联通,还是电信。
3、lac 还有 ci(cellId)

知道需要获取什么数据,Android 中怎么获取呢?我们直接上代码。

public class GetIdUtil {private Context mContext;TelephonyManager mTelephonyManager;public GetIdUtil(Context context){this.mContext = context;}/*** 获取 基站 信息* @return*/public String getBaseStationInformation(){if(mTelephonyManager==null){mTelephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);}// 返回值MCC + MNC (注意:电信的mnc 对应的是 sid)String operator = mTelephonyManager.getNetworkOperator();int mcc = -1;int mnc = -1;if(operator!=null&&operator.length()>3){mcc = Integer.parseInt(operator.substring(0, 3));mnc = Integer.parseInt(operator.substring(3));}// 获取邻区基站信息List<NeighboringCellInfo> infos = mTelephonyManager.getNeighboringCellInfo();StringBuffer sb = new StringBuffer("总数 : " + infos.size() + "\n");for (NeighboringCellInfo info1 : infos) { // 根据邻区总数进行循环sb.append(" LAC : " + info1.getLac()); // 取出当前邻区的LACsb.append("\n CID : " + info1.getCid()); // 取出当前邻区的CIDsb.append("\n BSSS : " + (-113 + 2 * info1.getRssi()) + "\n"); // 获取邻区基站信号强度}int type = mTelephonyManager.getNetworkType();Toast.makeText(mContext,"type:= "+type,Toast.LENGTH_LONG).show();//需要判断网络类型,因为获取数据的方法不一样if(type == TelephonyManager.NETWORK_TYPE_CDMA        // 电信cdma网|| type == TelephonyManager.NETWORK_TYPE_1xRTT|| type == TelephonyManager.NETWORK_TYPE_EVDO_0|| type == TelephonyManager.NETWORK_TYPE_EVDO_A|| type == TelephonyManager.NETWORK_TYPE_EVDO_B|| type == TelephonyManager.NETWORK_TYPE_LTE){CdmaCellLocation cdma = (CdmaCellLocation) mTelephonyManager.getCellLocation();if(cdma!=null){sb.append(" MCC = " + mcc );sb.append("\n cdma.getBaseStationLatitude()"+cdma.getBaseStationLatitude()/14400 +"\n"+"cdma.getBaseStationLongitude() "+cdma.getBaseStationLongitude()/14400 +"\n"+"cdma.getBaseStationId()(cid)  "+cdma.getBaseStationId()+"\n  cdma.getNetworkId()(lac)   "+cdma.getNetworkId()+"\n  cdma.getSystemId()(mnc)   "+cdma.getSystemId());}else{sb.append("can not get the CdmaCellLocation");}}else if(type == TelephonyManager.NETWORK_TYPE_GPRS         // 移动和联通GSM网|| type == TelephonyManager.NETWORK_TYPE_EDGE|| type == TelephonyManager.NETWORK_TYPE_HSDPA|| type == TelephonyManager.NETWORK_TYPE_UMTS|| type == TelephonyManager.NETWORK_TYPE_LTE){GsmCellLocation gsm = (GsmCellLocation) mTelephonyManager.getCellLocation();if(gsm!=null){sb.append("  gsm.getCid()(cid)   "+gsm.getCid()+"  \n "//移动联通 cid+"gsm.getLac()(lac) "+gsm.getLac()+"  \n "             //移动联通 lac+"gsm.getPsc()  "+gsm.getPsc());}else{sb.append("can not get the GsmCellLocation");}}else if(type == TelephonyManager.NETWORK_TYPE_UNKNOWN){Toast.makeText(mContext,"电话卡不可用!",Toast.LENGTH_LONG).show();}Log.d("spp","mTelephonyManager.getNetworkType(); "+mTelephonyManager.getNetworkType());Log.i(TAG, " 获取邻区基站信息:" + sb.toString());return sb.toString();}
}

然后,爽歪歪。

Android 通过基站进行定位相关推荐

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

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

  2. Android附近基站+Wifi+IP+GPS多渠道定位方案

    wifi定位wiki:https://developers.google.com/maps/documentation/geolocation/intro 前言: 在移动客户端的开发中,地理位置定位是 ...

  3. android中几种定位方式详解

    目录 前言: 1.GPS定位 2.NETWORK定位 3.AGPS定位 4.基站定位 5.WIFI定位 6.混合定位 目前,移动端大致通过三种方式来进行设备定位:GPS.基站.wifi.本文就详细的讲 ...

  4. Android 高德地图(带有定位和点击显示经度纬度)

    Android高德地图测试,如下: 1.Android高德地图Demo地址下载:       下载android高德地图Demo 1.2 Android定位SDK 一键下载 1.3 下载好的文件zip ...

  5. android gps 差分定位,基于Android的高精度GPS定位与土地测量应用设计

    摘要: 随着移动平台技术的飞速发展,Android作为一款新兴的嵌入式操作系统,基于Android系统的移动终端应用设计成为当今应用开发的一个主流.而GPS(Global Positioning Sy ...

  6. Android 原生Wi-Fi室内定位探究

    一.关于室内定位的一些技术包括:RFID.蓝牙.红外.UWB. ZigBee.WiFi和行人航迹推算PDR(Pedestrian Dead Reckoning) 参考资料:http://wap.cnk ...

  7. android实现3种定位的切换,Android 滑动定位+吸附悬停效果实现

    在前两篇文章中,分别介绍了tablayout+scrollview 和 tablayout+recyclerview 实现的滑动定位的功能,文章链接: Android 实现锚点定位 Android t ...

  8. 乾坤物联-UWB定位基站和定位信标的区别

    很多人在定位系统的方案或者技术讨论中,总是听到UWB定位基站.信标和定位标签等术语,其中大部分的论述模糊不清,很难分清定位基站和信标究竟有什么区别,以致于在很多招投标的描述中都有将这两个混为一谈的,那 ...

  9. Android Studio 实现地图定位(移动开发技术作业)

    文章目录 一.项目要求 二.项目功能展示 三.项目具体实现方法 1.创建项目及Android studio基础配置 2.将地图进行显示以及定位(代码实现) 四.遇到的问题解决方法及总结 五.项目源代码 ...

最新文章

  1. Go 学习笔记(67)— Go 并发安全字典 sync.Map
  2. nodejs-Buffer(缓冲区)
  3. 普通用户程序使用保留端口 error while loading shared libraries
  4. 正则在php中的使用
  5. Gradle中的buildScript代码块
  6. Java飞行记录器(JFR)
  7. pythonui教学视频_分享软件开发相关视频教程(Java、C++、Python、UI设计、HTML5、iOS)...
  8. 入口文件到控制器 php,tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析...
  9. Beekeeper Studio:一款高颜值且免费的 SQL 开发工具
  10. java的的socket编程_javasocket编程
  11. 软件体系结构——设计模式
  12. 怎么使用计算机唱歌,声卡怎么用手机唱歌
  13. Windows重新安装系统后安装软件步骤
  14. 程序员业余时间运营一个技术公众号是种什么体验?
  15. Fastboot刷机
  16. 几乎零基础的git入门级分享
  17. Android 高清加载长图或大图方案
  18. 计算机信息安全攻防大赛,2018年度信息安全攻防大赛圆满收官
  19. Codeforces911题解
  20. 火火火的圣诞帽!微信朋友都给自己头像带上了!

热门文章

  1. 基于HTML旅游网站设计与实现 途游网站制作 学生DW静态旅游网页设计 html静态旅游风景区网页设计制作 web前端课程设计 web前端课程设计代码 web课程设计
  2. python拨号_python 宽带拨号
  3. Super-FAN论文阅读
  4. 织梦dede:arclist关键词标签keyword动态获取变量
  5. 基于GAN的小目标检测算法总结(1)——Perpetual GAN
  6. C语言复习笔记——适合一些需要复习和进阶c语言的朋友,这只能说是个概要。当然,如果朋友你看到某个内容能联想到知识点,那你应该是掌握了的,你可以尝试找找其他的文章去深入理解下,如有错误和疑问可以直接指出
  7. excel单元格内加空格_怎样在excel的单元格中的一列数字间添加两空格?
  8. 大学生的期望落差在哪里?——转帖newsmth
  9. 用pandas_profiling生成数据报告遇到的各种坑
  10. 基于Twitter的Snowflake算法实现的分布式ID生成器