如何在Android中解决原生定位-创新互联

本篇文章为大家展示了如何在Android中解决原生定位,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联建站2013年开创至今,是专业互联网技术服务公司,拥有项目成都做网站、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元淮滨做网站,已为上家服务,为淮滨各地企业和个人服务,联系电话:18982081108

简单了解下:


GPS_PROVIDER:通过手机内置的GPS芯片,利用卫星获取定位信息。位置监听、卫星状态监听很耗电且室内定位很不准确。

NETWORK_PROVIDER:网络定位通过基站和WiFi节点,利用节点id在定位数据服务器查询位置信息。但是国内网络不允许,且有消息称Google已不提供该服务。so网上出现的此种方式获取定位信息不可用,也就是说NETWORK_PROVIDER在国内不可用。

PASSIVE_PROVIDER:被动定位,其他应用比如百度、高德等使用了定位,系统会更新定位信息并保存下来,通过此方式可以获取最近一次的位置信息。

第三方SDK当然好用了,但是要注意获取的经纬度是经过了偏移的,只适配自己的地图。比如用百度地图SDK获取的经纬度在百度地图上是准确的,在高德地图上显示可能就会有一定的偏差。如果经纬度和地图不是成套使用就要考虑偏移的情况,而不是获取的经纬度不准确。第三方SDK都有自己的网络定位数据,他们的网络定位不仅仅是依靠服务器查询,还有一套算法支撑,所以室内定位比较准确。

有些项目不使用第三方SDK,只能用原生方法获取定位。NETWORK_PROVIDER 被迫放弃,PASSIVE_PROVIDER 只能是辅助,GPS_PROVIDER 需要增加精度。

我是这么处理的:

1. addGpsStatusListener 监听卫星状态,当信号值 > 1 的卫星数量在4颗以上,才可以使用 GPS_PROVIDER;

如何在Android中解决原生定位

2. 速度>0.5 且 精度 < 50 才会被认为是有效的经纬度数据(我的项目中设备是移动的)。

补充:使用Android自带api定位失败的原因

前奏:使用高德百度等定位,集成那么麻烦。为何不使用android自带的api进行定位。省时省力?

1.使用自带定位很简单,如下图

如何在Android中解决原生定位

2.继承LocationListener

如何在Android中解决原生定位

3.如果获取到就解析数据

如何在Android中解决原生定位

但是,问题来了。

位置提供者就两种方式,要么network,要么gps.

如何在Android中解决原生定位

上述内容就是如何在Android中解决原生定位,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


新闻名称:如何在Android中解决原生定位-创新互联
标题URL:http://azwzsj.com/article/hchsd.html