基站定位原理 , 通过手机信号获取基站信息 , 然后调用第三方公开的基站信息查找基站位置 , 再根据基站具体经纬度数值获取具体位置地址信息
1 基站信息
手机号通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释:
MCC , Mobile Country Code , 移动国家代码(中国的为460);
MNC , Mobile Network Code , 移动网络号码(中国移动为0 , 中国联通为1 , 中国电信为2);
LAC , Location Area Code , 位置区域码;
CID , Cell Identity , 基站编号;
BSSS , Base station signal strength , 基站信号强度 。
具体实现代码如下:
[JAVA]
package com.easipass.test;
import java.util.List;
mport Android.App.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.NeighboringCellInfo;
import android.telephony.TelephonyManager;
import android.telephony.cdma.CdmacellLocation;
import android.telephony.gsm.GsmCellLocation;
import android.util.Log;
import android.view.View;
/**
* 功能描述:通过手机信号获取基站信息
* # 通过TelephonyManager 获取lac:mcc:mnc:cell-id
* # MCC , Mobile Country Code , 移动国家代码(中国的为460);
* # MNC , Mobile Network Code , 移动网络号码(中国移动为0 , 中国联通为1 , 中国电信为2);
* # LAC , Location Area Code , 位置区域码;
* # CID , Cell Identity , 基站编号;
* # BSSS , Base station signal strength , 基站信号强度 。
* @author android_ls
*/
public class GSMCellLocationActivity
获取基站信息后导入查询软件
利用小区号和基站号可以做简单的GSM定位 , 下面给出一个取得小区号和基站号的方法 。
首先依然是打开AT指令端口 。
要取得小区号和基站号 , 需要首先让手机输出这两个号码 , 方法是利用设置命令”AT+CREG=2” 。然后再发送AT+CREG?查询即可取得基站号和ID号 。
返回值应该是这样的:
AT+CREG=2;+CREG?
+CREG: 2,n,”ABCD”,”ABCD”
OK
其中第一个“ABCD”是小区号(LAC) , 第二个“ABCD”是基站号(CI) 。
至于运营商 , 可以用AT+COPS?获取 。返回值应该类似这样:
AT+COPS?
+COPS: 0,0,”China Mobile”
OK*
推荐阅读
- Windows系统引导过程以及多系统引导原理
- 「防偷利器」iOS 15“查找”新功能,关机也可远程定位
- 微服务链路追踪原理
- 快照介绍和原理
- HTML地理坐标
- 图解LinkedHashMap原理
- 电热水龙头原理是什么
- MySql 三大知识点,索引、锁、事务,原理分析
- MySQL索引原理
- Google SEO 系列 - 搜索引擎原理