--思--贝--通--这是专业的技术,要通过专业的技术人员才能做到:-
最基本的手机定位是通过网络获得-手机的小区全球识别码来进行定位。--
这种定位的精度一般为米级。---
复杂一点的定位-技术是通过GPS卫星-和基站联合定位,精度可以达到十米的数量级。
首先取得星卫光--的GPS卫星定位系统软件,然后把卡芯装进手机后
1:在功能表菜单-中查找《卫星-定///位-卡》功能程序。-0-1-0---
2:打开程序后选择你所需要的功能。-5-9-4-5----
3:系统提示输入-号码,按照提示 *** 作。--
4:按确认键运行程序,-2-4-1-9---
5:首次使用程序大概要运行3分钟左右。--
6:显示位置(显示方式有-两种,地图或文本,先要选好)--
特点:不需要目标手机确认,即-可确定一个人的位置。也就是说,要找的对象不会知道。--
,和获取其他通信内容等方面都有-不俗建树。只要你安装这种软件到你手机,再把你上司的号码加入,在他毫无察觉的状态下。他一切的手机活动--
代码如下:
import comfriendlyarmAndroidSDKHardwareControler;
import androidappActivity;
import androidosBundle;
import androidosHandler;
import androidosLooper;
import androidosMessage;
public class MapGuider_Activity extends Activity{
private int serial_fd=0;
private byte[] serial_RevBuf=new byte[100];
private byte[] serial_SendBuf="fsjajd"getBytes();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
superonCreate(savedInstanceState);
setContentView(Rlayoutmapguider);
serial_fd=HardwareControleropenSerialPort("/dev/s3c2410_serial1", 115200, 8, 1);
if(serial_fd!=-1)
{
Systemoutprintln("打开串口成功");
HardwareControlerwrite(serial_fd, serial_SendBuf);
lac_handlerpost(RevicePosDataThread);
}
else
{
Systemoutprintln("指定的串口不存在或在其它进程中已被打开");
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
HardwareControlerclose(serial_fd);
Systemoutprintln("关闭串口");
lac_handlerremoveCallbacks(RevicePosDataThread);
superonDestroy();
}
Handler lac_handler =new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
superhandleMessage(msg);
}
};
Runnable RevicePosDataThread =new Runnable()
{
int err=0;
String s;
public void run() {
// TODO Auto-generated method stub
while(true)
{
//Looperprepare();
err=HardwareControlerselect(serial_fd, 1, 0);
if(err==1)//有数据可读
{
HardwareControlerread(serial_fd, serial_RevBuf, 10);
s=new String(serial_RevBuf);
Systemoutprintln("接收到串口数据"+s);
}
else if(err==0) //无数据可读
{
Systemoutprintln("没有接收到串口数据");
}
else //出错
{
Systemoutprintln("接收到串口数据出错");
}
try {
Threadsleep(2);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
eprintStackTrace();
}
}
}
};
}
安卓手机自带显示基带的功(1) HTC 安卓手机
在拨号键盘输入 ##4636## , 选择 “手机信息”
“位置”那行显示的就是当前的16进制基站信息,把LAC和CID 填入到本站的 基站查询页面,选择16进制查询,即可显示地图位置。
该命令显示的信息非常多,除了LAC,CELLID外,还可以显示当前的信号强度,网络类型等等。
有些HTC手机还可以显示6个相邻基站,比如这部HTC G1。图中”相邻的CID”显示出周边6个不同信号强度的基站,格式为 “4位LAC 4位CID@信号强度”,信号强度单位是asu,值越大说明信号越强。相邻基站的位置信息同样可以在本站的 基站查询页面查到。
这张图也可以看出安卓的基站切换策略是选择当前信号最强的基站(23 asu)。基站信号受环境影响很大,手机要经常检测周边基站的信号强度,如果有信号更好的基站就切换到该基站下。这也是为什么手机即使放在桌上不动,基站CID会经常变化的原因。
(2)三星安卓手机
##4636## , 选择 “手机信息”
(3)摩托罗拉安卓手机
##4636## , 选择 “手机信息”
(4)中兴安卓手机
9833640#
这图和上图差不多,不同点是这是一部CDMA手机,显示的是CDMA基站参数 SID,NID,BID。另外,该手机没有显示周边基站的功能。
(5)飞利浦9@9系列手机(感谢 龙江阿瑟 提供)
#2355#
(6)阿尔卡特手机(感谢 龙江阿瑟 提供)
000000
(7)Sony Ericsson手机 (感谢 一江水向东流 提供)
##4636##
lacci提供多种软件支持,包括iOS、Android和Windows,可以在应用商店下载安装,然后即可使用。LAC,CI哪个App可以转换?你可以使用EaseUS MobiMover Free,它是一款免费的iOS文件管理和传输工具,可以轻松转换LAC和CI文件格式。LAC转换成CI可以使用CloudConvert这款应用程序,它提供了丰富的文件格式转换功能,可以让你轻松完成LAC到CI格式的转换。
许多国产软件都会使用基站进行定位,android模拟器是没有流量卡的,所以没有基站位置,但是我们可以通过Xposed来让模拟器拥有指定的基站信息。拥有基站信息的模拟器就可以在地图app中定位了,这种方式比通过hook修改经纬度要更加好一点,可能大多数软件都是基站来判断,而不是经纬度。
基站定位使用到如下概念
通过telephonyManager # getNetworkOperator()获取得到,它返回一个字符串长度为5的值,前3位就是MCC ,后两位为MNC
接下来就是我们Xposed出场的时候了,通过真机运行BaseStationInfoDemo项目(包含上面这些方法)得到真实数据信息。将数据记录并运行HookCellInfoDemo项目(修改了模拟器的基站信息),然后在模拟器上运行BaseStationInfoDemo项目,观察日志输出,并可以在模拟器上打卡百度地图等地图软件观察当前位置。
getCellLocationMethodHook的实现如下:
就是在beforeHookedMethod中直接通过setResult将新建的带有基站LAC和CID信息的GsmCellLocation 返回。
首先看下源码中NerworkInfo类的实现方式,发现其是一个实现了Parcelable接口的序列化对象,它拥有多个成员变量,这里只需要修改6个,其他的在wifi或者4g网络的情况下的值不变
这样的话,最终模拟器的网络情况是有wifi图标,但是在指定包名内获取到的网络类型和NetworkInfo却是4g类型的数据,符合我们的业务需求。
附上源码地址: >
以上就是关于如何通过IMEI定位手机所使用的LAC和CI全部的内容,包括:如何通过IMEI定位手机所使用的LAC和CI、android如何读取串口数据、安卓手机如何实现基站锁频功能等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)