Android定位方式
Android常用的三种定位方式有:基于GPS定位、基于基站定位、基于wifi定位。
1)基于GPS定位
GPS定位需要GPS模块(硬件)的支持,没有GPS模块是无法进行GPS定位的。
GPS定位最大的优点就是其定位精确度高;缺点就是耗电高、定位慢、室内和地下室基本定位不到。
2)基于基站定位
根据采集到手机所处基站信息和手机相关信息(MNC、MCC、LAC)进行定位,基站定位最大的优点就是:定位速度快,缺点就是:定位精度稍微较差,无网络信号不能使用。
3)基于wifi定位:
和基站定位类似,根据当前设备获取的wifi信息来进行定位。
可以从Androidmanifest.xml查看程序优先使用的定位方式:
Android应用定位原理
LocationManager是用于管理Android的用户定位服务,使用它来监听获取当前的位置信息并定义要返回的信息,如经纬度、方位等,相关代码如下:
Android定位测试注意
1)定位正确性;
2)定位权限;
3)不同网络环境下的定位;
4)不同环境下的定位;
5)本地测试外地定位;
6)定位产生的耗电量评测;
7)定位失败的处理情况。
上面提到的泛灵犀问题中,小编就是漏掉了本地测试外地定位的情况,关于“本地测试外地定位”的测试方法如下:
自定义位置提供器:
1)准备一台root手机;
2)下载“伪装定位”app并安装;
3)安装完毕,打开手机设置→开发人员选项,开启允许虚拟位置;
4)回到软件主界面,在地图上选择你要模拟的地方,点击“穿越到这里”
模拟器模拟:
使用模拟器进行测试的时候可以使用DDMS进行经纬度设置,如图:
白盒方式:
由于定位代码最终获取的是一个位置对象,只需要在获取到位置对象后手动设置经纬度即可。程序中使用的位置对象一般是android.location.Location对象,调用它的setLatitude和setLongitude方法就可以设置经纬度。