许多国产软件都会使用基站进行定位,android模拟器是没有流量卡的,所以没有基站位置,但是我们可以通过Xposed来让模拟器拥有指定的基站信息。拥有基站信息的模拟器就可以在地图app中定位了,这种方式比通过hook修改经纬度要更加好一点,可能大多数软件都是基站来判断,而不是经纬度。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站建设、襄汾网络推广、重庆小程序开发公司、襄汾网络营销、襄汾企业策划、襄汾品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供襄汾建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
基站定位使用到如下概念
通过telephonyManager # getNetworkOperator()获取得到,它返回一个字符串长度为5的值,前3位就是MCC ,后两位为MNC
接下来就是我们Xposed出场的时候了,通过真机运行BaseStationInfoDemo项目(包含上面这些方法)得到真实数据信息。将数据记录并运行HookCellInfoDemo项目(修改了模拟器的基站信息),然后在模拟器上运行BaseStationInfoDemo项目,观察日志输出,并可以在模拟器上打卡百度地图等地图软件观察当前位置。
getCellLocationMethodHook的实现如下:
就是在beforeHookedMethod中直接通过setResult将新建的带有基站LAC和CID信息的GsmCellLocation 返回。
首先看下源码中NerworkInfo类的实现方式,发现其是一个实现了Parcelable接口的序列化对象,它拥有多个成员变量,这里只需要修改6个,其他的在wifi或者4g网络的情况下的值不变
这样的话,最终模拟器的网络情况是有wifi图标,但是在指定包名内获取到的网络类型和NetworkInfo却是4g类型的数据,符合我们的业务需求。
附上源码地址:
里面的两个文件夹分别就是BaseStationInfoDemo项目和HookCellInfoDemo项目
我没什么手机编程经验,但我想说的是假如传输数据要0.01秒,基站要0.05秒时间处理数据。那结果呢,你比我清楚吧。
华为 安卓手机
在拨号键盘输入 *#*#4636#*#* , 选择 “手机信息”
“位置”那行显示的就是当前的16进制基站信息,把LAC和CID 填入到本站的 基站查询 页面,选择16进制查询,即可显示地图位置。
该命令显示的信息非常多,除了LAC,CELLID外,还可以显示当前的信号强度,网络类型等等。
final TelephonyManager telephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
if (telephony.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM) {
final GsmCellLocation location = (GsmCellLocation) telephony.getCellLocation();
if (location != null) {
msg.setText("LAC: " + location.getLac() + " CID: " + location.getCid());
}
}
不要忘记设置 ACCESS_COARSE_LOCATION 或 ACCESS_FINE_LOCATION 权限, 不然会有SecurityExceptions报出.
uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/
可以。
在Android操作系统下,基站定位其实很简单,先说一下实现流程:
调用SDK中的API(TelephonyManager)获得MCC、MNC、LAC、CID等信息,然后通过google的API获得所在位置的经纬度,最后再通过google
map的API获得实际的地理位置。(google真牛!)
你好:
目前主流的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基站,android基站定位需要权限吗
标题链接:https://www.cdcxhl.com/article8/dseppop.html
成都网站建设公司_创新互联,为您提供外贸网站建设、云服务器、品牌网站制作、网站内链、品牌网站设计、搜索引擎优化
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联