㈠ android中GPS定位如何综合运用GPS、基站、网络定位
基站定位一般都支袜耐模持的啊。google map本身的定位就是支持基站定位的。你试试mobiletrack,可以综合用基站定告缓位,wifi和gps定位的。试试看是不是你想要的。网上可以免费下载。亩指你搜搜吧
㈡ Android模拟器模拟基站信息,并将wifi伪造成4g数据信息
许多国产软件都会使用基站进行定位,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类型的数据,符合我们的业务需求。
附上源码地址: https://github.com/carrys17/CellInfo
里面的两个文件夹分别就是BaseStationInfoDemo项目和HookCellInfoDemo项目
㈢ android手机能不能通过基站获得地理位置的
可以。
在Android操作系统散岩下,基站定位其实很简单,先说一下实现流程:
调用SDK中的API(TelephonyManager)获得MCC、MNC、LAC、CID等信息,然后通过google的API获得所在位置的御腊经纬度,最后再通过google
map的API获镇掘滑得实际的地理位置。(google真牛!)
㈣ 请问目前主流Android 定位有哪些,还有百度定位和gps定位有什么区别
你好:
目前主流的Android定位有如下几种:
1.通过GPS模块
GPS方式准确度是最高的,但是它的缺点也非常明显:1,比较耗电;2,绝大部分用户默认不开启GPS模块;3,从GPS模块启动到获取第一次定位数据,可能需要比较长的时间;4,室内几乎无法使用。这其中,缺点2,3都是比较致命的。需要指出的是,GPS走的是卫星通信的通道,在没有网络连接的情况下也能用。
2.基站定位
大致思路就是采集到手机上的基站ID号(cellid)和其它的一些信息(MNC,MCC,LAC等等),然后通过网络访问一些定位服务,获取并返回对应的经纬度坐标。基站定位的精确度不如GPS,但好处是能够在室内用,只要网络通畅就行。
3.WIFI定位
和基站定位类似,这种方式是通过获取当前所用的wifi的一些信息,然后访问网络上的定位服务以获得经纬度坐标。因为它和基站定位其实都需要使用网络,所以在Android也统称为Network方式。
4.AGPS方式
很多人将它和基站定位混为一谈,但其实AGPS的本质仍然是GPS,只是它会使用基站信息对获取GPS进行辅助,然后还能对获取到的GPS结果进行修正,所以AGPS要比传统的GPS更快,准确度略高。
网络定位和GPS定位的区别
这个问题有点模糊,不是一个概念,注意区分一下,智能手机上网络地图的定位一般选择GPS开启吧。
㈤ android手机基站定位,无法获取经纬度
首先locationManager里面有个getAllProvider的方法,应该是这么写的,我记得不是埋搏哪很清楚银誉了,把所有支持的provider都打出来看看弯码,我估计你那个手机可能不支持network,很多手机都不支持。
㈥ 华为安卓android手机查看基站信息的命令是什么
1、华为android手机查看基站信息的命令是
1)在拨号键盘输入
*#*#4636#*#*
,
选择
“手升毁机信知逗息”
2)“位置”那行显示的就是当前的16进制基站信息,把LAC和CID
填入到本站的
基站查询
页面,选择16进制查询,即可显示地图位置。
3)除了LAC,CELLID外,搭笑卖还可以显示当前的信号强度,网络类型等等
㈦ android 定位地理位置
定位技术有两种,一种是基于GPS的定位,一种是基于移动运营网的基站的定位。基于GPS的定位方式是利用手机上的GPS定位模块将自己的位置信号发送到定位后台来实现手机定位的。基站定位则是利用基站对手机的距离的测算距离来确定手机位置的。后者不需要手机具有GPS定位能力。
目前,一般的定位软件所使用的都是GPS定位和基站定位相结合。基站定位是通过电信移动运营商的网络(如GSM网)获取移动终端用户的位置信息(经纬度坐标)。GPS定位使用卫星,比较费电,精确,但在室内无法定位。基站定位的精度较低,但是可以在室内定位。基站定位的精度很大程度依赖于基站的分布及覆盖范围的大小,有时误差会超过一公里。
手机定位应该根据用户服务需求的不同提供不同的精度服务,并可以提供给用户选择精度的权利。例如美国FCC推出的定位精度在50米以内的概率为67%,定位精度在150米以内的概率为95%。定位精度一方面与采用的定位技术有关,另外还要取决于提供业务的外部环境,包括无线电传播环境、基站的密度和地理位置、以及定位所用设备等。
基站定位的大致原理为:移动电话测量不同基站的下行导频信号,得到不同基站下行导频的TOA(Time of Arrival,到达时刻)或TDOA(Time Difference of Arrival,到达时间差),根据该测量结果并结合基站的坐标,一般采用三角公式估计算法,就能够计算出移动电话的位置。实际的位置估计算法需要考虑多基站(3个或3个以上)定位的情况,因此算法要复杂很多。一般而言,移动台测量的基站数目越多,测量精度越高,定位性能改善越明显。
还有,你在使用手机网络地图等软件的时候,在不打开网络和GPS的情况下,实际上也能实现定位。但是你可能看不出来,因为在你没有打开网络的时候,地图页面不会加载,看到的只是全屏的网格。但你会看到进入时的点位置有一个明显的跳动过程,这是该软件设置的初始位置向你当前位置跳转。你也可以先打开网络,实用软件加载一遍地图,如其存在你的缓存中,这是在关闭网络的情况下就会显示你的位置。
资料来源:http://ke..com/link?url=UCgPUX7gVVa08-G4Ss-e4N52vlGBg8jrRdytEW7YP_
㈧ android基站定位,是否必须有网络才可以
定位服务可以通过gps、基站还纳袭洞有wifi数据实现,而且对应用程洞枯序开发者还是透明的定位服务禅配可以用基站和wifi吗?? Gps可以确定你的经纬度 基站和wifi好像不行
㈨ android如何获取地理位置
三种方式进行定位,获取用户位置,分别是基于基站定位, 网络定位,GPS定位。
1.基站定位(passive):这是基于网络基站进行定位的,定位的精确度在几十米到几千米不等,在城市中基站覆盖率比较高,推荐使用基站定位,如果是在郊区,基站相距较远,基站的覆盖没有城里好,定位的误差比较大。如果在郊区不推荐使用基站定位。
2.网络定位:wifi定位,网络定位
3.GPS定位:与卫星进行通信。手机中嵌入了GPS模块(精简版的A-GPS),通过A-GPS搜索卫星, 获取经纬度。使用GPS的弊端是:必须站在空旷的地方,头顶对着天空,如果云层厚了,也会受到一定的影响。精确度:10-50米
扩展知识:
使用Android是定位必备的权限:
< uses-permission android:name= " android.permission.ACCESS_FINE_LOCATION " /> //精确定位
<uses-permission android:name= "android.permission.ACCESS_MOCK_LOCATION" /> //模拟器
<uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" /> //粗糙定位
//获取定位管理对象
LocationManager lm=(LocationManager)getSystemService(LOCATION_SERVICE);
String[] names=lm.getAllProviders();//获取所有的位置提供者,一般三种
Criteria criteria=new Criteria();//查询条件,如果设置了海拔,则定位方式只能是GPS;
criteria.setCostAllowed(true);//是否产生开销,比如流量费
String provider=lm.getBaseProvider(criteria,true)//获取最好的位置提供者,第二个参数为true,表示只获取那些被打开的位置提供者
lm.requestLocationUpdates(provier,0,0,new LocationListener(){});//获取位置。第二个参数表示每隔多少时间返回一次数据,第三个参数表示被定位的物体移动每次多少米返回一次数据。
private class MyLocationListener implements LocationListener {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
@Override
public void onLocationChanged(Location location) {
System. out.println( "服务中位置监听发送了变化了" );
float accuracy = location.getAccuracy(); // 精确度
double altitude = location.getAltitude(); // 海拔
double latitude = location.getLatitude(); // 纬度
double longitude = location.getLongitude(); // 经度
String locationInfo = "jing:" + longitude + ",wei:" + latitude + ",haiba:" + altitude + ",jingque:" + accuracy;
Editor edit = sp.edit();
edit.putString( "location", locationInfo);
edit.commit();
}
} public void onProviderDisabled(String provider) {
}
㈩ 百度地图android版,是如何做到通过基站定位到如此准确的
这是火星坐标系的余肢原因..因为定位用的大多不是本国的卫星..定位出的坐标在中国不会准确..都会 有 在圆形范围内随机的 400 - 600米的偏移.我有一个解析火竖敬世星坐标系的类.. 年前测试的时候 通稿祥过这个类 来 反算经纬度 还是非常准确的..只有10米左右的误差..但是不知道几年的火星算法更新没有...