记录
今天遇到一个问题,就是在定位的时候只获取到了经纬度,其它内容都是空的。
网上查了一下,以前也有人遇到过。但是都没有写出来具体原因。
今天我也遇到了,顺道也找了一下原因,并给出解决办法。
原因一共有三个:
- 没有设置许可:setNeedAddress(true) 默认是true 如果你设置false当然就没有详细信息了
- 模式为仅限设备模式 如果是仅限设备模式 那么是不会有详细信息的
- 没有给权限 这个也是最更容易忽略的地方,因为定位是敏感权限,所以必须要实时获取权限,否则你就会出现上面的问题。
解决办法
- 针对第一种只要设置为true就可以了
- 这个只要不使用仅限设备模式就行setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy)我用的是高精度模式
- 动态的去获取权限,具体怎么动态获取,网上方法很多,在此不再赘述。
最后需要注意的
经过实际测试,在开发使用中,要想获取到详细地址除了上面三部分需要做好之外。系统定位也需要十来次之后才能定位到准确的位置
所以,在自己开发的时候,多试几次总不是坏事