大家好我又来了。ps:小伙伴的媳妇要生孩子了,所以之前的网站出现了问题,暂时在本平台发文。
本人是记录昨天尝试Android原生定位遇到的问题,因为如果出现错误,欢迎各位大佬来喷。
按照之前的开发,定位服务可以采用百度腾讯高德甚至是滴滴等第三方的服务,但是处于我们的业务考虑和约束,首选原生的定位。
还是要啰嗦一下,定位有GPS,AGPS ,wifi,和基站这几大种定位方式,优缺点就不做过度介绍了
。首先是Gps定位,动态获取权限的话其实只需要:ACCESS_FINE_LOCATION这个权限就够了,但是如果用户在室内的话,讲真我在室内就没定位成功过。
后来我想这样可不行,就算GPS定位不到我可以通过网络定位呀(PS,公司网络直接就是翻墙的,不用担心国内网络影响)。
紧接着我就按照资料上的方式开始走网络定位,关闭了GPS,同时开启了ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION权限,其中ACCESS_COARSE_LOCATION权限就是针对wifi和基站的定位权限,然后我就一脸蒙圈了,为什么!!!为什么!!凭什么我定位不到!!!
不要慌,问题不大,容我仔细看看咋回事,大家猜猜我发现了什么????
在关闭了GPS后,此时没有network的支持了,刺激不刺激!!!!!如果我打开GPS,此时list中包含的就有gps和network,说明此时这两个都是可用的。
所以这个:
网络节点其实是针对AGPS的节点,它是要依赖GPS才能实现的定位,也就是说AGPS是GPS和网络定位捆绑在一起的,此时的network访问的是AGPS的信号基站,网络节点并不可用!!!!!!!!!
所以想要单独获取网络定位咋办呢????当然传说可以使用谷歌的service sdk实现网络定位,但是滴滴也好,高德也好,万变不离其宗的是,都需要咱们主动的去请求后台基站数据库,根据ip定位后再把结果返回给客户端。
大家要是有兴趣可以尝试下。
预告:
接下来会出一系列针对Hybird混合开发的文章,针对WebView加载H5时候的各种需求各种兼容(我的1505行webView代码),例如:动态注入Js的三种方式,webView向前和向后加载不同的Js,怎么解决Java和Js在安卓4.几手机上的兼容崩溃和安全漏洞问题,调用支付,调用本地照片等需求,如何管理webView的栈,实现不同的栈走不同的逻辑,防止DNS污染!!!!最迅猛开发移动端H5页面的注意点和同时兼容iOS和Android!!!!!!!!