android不用百度SDK,如何定位当前位置!!
不要再跟我说用百度SDK了!!!!公司不能用第三方的东西,好吧,那我试着自己实现
辗转研究了很多,知道定位的原理是根据GPS+网络+基站的方式,于是逐个击破
1.GPS,由于GPS在室内用不了外加耗电,而且2.3以后不能在代码里悄悄的打开GPS了,故弃用。。。
2.网络,手机连上wifi,使用LocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)方法和requestLocationUpdates()方法,甚至还自己开了个service,每隔5秒就调用一次getLastKnownLocation,但就没一次获取到数据。据说这个接口已经停用了?不知真假,还是因为GOOGLE的网络在中国太慢?不解,求大神指教
3.基站,大概的思路是,先获得周围四到五个基站基本信息,比如cid,lac——location area code,再把这些信息发到GOOGLE服务器上根据基站按照一定的算法确定位置。问题是:基站信息获取到了,但是把数据发到GOOGLE后收到404的响应。据说这个接口现在已成为GOOGLE一项收费的项目,不知真假,再求指教。
照着以上思路,想着既然我得到了基站信息,能否不走GOOGLE根据基站获取当前位置信息,于是百度,发现有基站查询的网站,如www.cellid.cn,研究后发现该网站实际还是把基站信息发到GOOGLE的服务器,但是GOOGLE返回的是一段不知所云很简短的JS代码,然后在网站嵌入的GOOGLE地图上执行该代码。这样一来,就看不到当前位置相关的信息了。痛哭,,,
www.juhe.cn,再问,类似 聚合数据 这种第三方,号称能够通过基站进行定位服务,他们又是怎么做的呢,与三大运营商谈合作,获取他们的基站数据吗?
尼玛,现在只能先勉强用GPS了,泪崩~~