获取定位数据遇到的坑

来源:互联网 发布:汉诺塔递归算法java 编辑:程序博客网 时间:2024/06/18 10:20

**

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

**

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

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

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

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

2.使用高德地图API是需要获取SHA1的值,这里简单记录一下方法。

一、获取开发版SHA1:
1、打开android studio 里的Terminal,一般在下面显示,控制台的旁边
2、 输入命令 C: 进入c盘;
3、接着 输入命令 cd Users\Administrator.android Administrator是自己的用户名 进入.adnroid文件
4、输入命令 keytool -list -v -keystore debug.keystore 其中debug.keystore是studio默认的keystore,按回车,然后输入秘钥:android(系统默认)

二、获取发布版的SHA1:
1、首先如果项目还没有发布生成签名文件的话,就需要先去生成签名文件,得到一个.jks签名文件,后面需要用到
获取发布版的SHA1,跟获取开发版的SHA1的1、2、3步骤一样,不一样的地方就是第4步稍微不同而已。
2、跟获取开发版SHA1前三步一样,进入C盘用户目录下的.android文件夹里面
3、输入命令 keytool -list -v -keystore 文件目录\自己的签名文件
比如:keytool -list -v -keystore F:\签名文件\android.keystore ,接着回车,输入秘钥、 回车

原创粉丝点击