Android地理位置获取的那些坑

我算是搞明白了,无论是Framework还是Application,只要跟硬件相关的东西都有各种坑的存在。
所幸,也正是这些坑的存在,让这个行业形成了一道道门槛。 嗯,是这样的
坑在最后面

Android地理位置获取最佳实践

国外有Google Service的App

如果你遇到的正好是这种App,那你太荣幸了,google service的play-service-location lib正好解决你的问题,并且用起来超级简单,目前11.0.1版本包含你需要的类,10.0.1是不包含的。
使用方法: https://developer.android.com/training/location/retrieve-current.html

墙内的App

百度地图或高德地图的SDK

用过百度地图的都知道,它获取Location的方式非常简单,并且还有现成完善的Demo可以用。百度网络定位据说采用的是IP和基站,我们没那么多时间自己去搞这些玩意。

监听位置的更新

这里推荐一个完整的App https://github.com/obaro/SimpleLocationApp
注意,需要在AndroidManifest.xml里面添加上INTERNET权限

以为获取位置信息就能获取到

通过LocationManager 的方法getLastKnownLocation(String provider),直接获取的就是null

以为更新下位置就能获取到最新的位置

requestLocationUpdates调用后就能从listener获取到位置更新么,
想多了,得等一会。当然,如果你不是在操场办公,是在几十层楼信号娇弱的地方办公,那就等上半格小时到一个小时吧。当然在地铁上更不要指望能获取到位置更新。我还特地打印了位置更新的时间点,证明了我吃顿饭后才能收到位置更新。GPS指望不上,同时手机网络位置更新太慢,Nexus也是这样。

如果室外需要GPS定位怎么办

你只能通过启动Activity启动到设置定位服务开启的界面,是否开启GPS还需要提醒用户到里面设置。如下进入系统定位服务设置。

Intent myIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(myIntent);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值