获取定位数据遇到的坑

在Android开发中,遇到获取位置提供器失败的问题,原因是位置服务未开启,特别是“WLAN扫描”和“蓝牙扫描”。解决后,发现内置定位功能精度不足,转而使用高德地图API。获取高德地图API的SHA1值,需在Android Studio的Terminal中操作,分别针对开发版和发布版进行不同步骤的命令输入。
摘要由CSDN通过智能技术生成

**

1.使用Android手机自带GBS定位:

**

//获取地理位置管理器
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//获取所有可用的位置提供器
List providers = locationManager.getProviders(true);

一开始提示获取不到可用的位置提供器,调试时发现返回位置提供器的providers为null,测试手机为红米3S。网上说不同手机测试结果不一样,想到应该跟代码无关,可能跟手机自己的设置有关。
于是全局搜索“位置信息”->点击开启位置服务。继续调试代码,发现providers依旧为空,回去继续摸索手机的设置内容,发现在“设备安全性”里有个“更多”的选项,好奇点开看到了“扫描”选项,点击进去才发现“WLAN扫描”跟“蓝牙扫描”默认是关闭的,把它们都设置成开启就可以了。

总结:遇到没有可用的位置提供器这种情况,先看下设备相应的服务有没有开启。

另外在学习android手机自带的定位功能时发现不是很合用,利用联网定位精度不够,单独使用GPS定位在室内就接收不到。最后还是决定使用高德地图API封装好的定位接口。

2.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值